|ARM Technical Support Knowledge Articles|
Applies to: General Topics
Information in this article applies to:
I am using the following sprintf statement to limit a string output. However it outputs more than the 5 characters specified. In fact, it even outputs a new line (' ') sequence that is part of str.
sprintf (buf, "string = %5s", str)
Is this a problem with the Keil C Compiler?
No, this is standard ANSI behaviour. You need to specify a precision (number after the dot '.') in the %s format parameter to limit size of the string printed. The precision field is a non-negative number that specifies the number of characters to print.
sprintf (buf, "string = %.5s", str)
Using this format string, the string passed by str will be truncated after five characters.
Article last edited on: 2005-07-15 09:52:59
Did you find this article helpful? Yes No
How can we improve this article?