给定一个char *str = "something %s something2 %d"
,如何在不打印的情况下格式化它并生成一个新字符串?我知道"printf"可以打印出结果,但我不需要打印出结果。
答案是sprintf
:它正好printf
缓冲区。
你想要snprintf
. 就像printf
一样,但你给它一个目标缓冲区和一个大小。 (大小很重要,因此snprintf
可以确保不要溢出它。 像这样使用它:
char outbuf[100];
snprintf(outbuf, sizeof(outbuf), "%d %f %s %c", 1, 2.3, "four", '5');