格式化字符*,类似于"printf",但没有打印出来



给定一个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');

最新更新