GENERAL: LIMIT STRING OUTPUT IN PRINTF USING %S
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 ('\n') 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.
Last Reviewed: Thursday, December 12, 2013
of your data.