在C中格式化字符串

Mih*_*aru -1 c python arrays string string-formatting

我想用C语言做类似的事情:

# This example is in Python language

var1 = 10
var2 = 45
var3 = 76

text = "Numbers are: %d, %d, %d." % (var1, var2, var3)
Run Code Online (Sandbox Code Playgroud)

这可能在C?我想说一个纯C的解决方案,而不是C++.谢谢.

编辑:

我不想直接打印字符串,我只想存储格式化的字符串.

pmg*_*pmg 7

使用 snprintf()

int var1 = 10;
int var2 = 45;
int var3 = 76;
char text[100];

snprintf(text, sizeof text, "Numbers are: %d, %d, %d.", var1, var2, var3);
Run Code Online (Sandbox Code Playgroud)

  • 在这个简单的例子中你足够安全,但一般来说你应该检查`snprintf()`的返回,看看是否一切都合适.`int n; n = snprintf(text,sizeof(text),...); if(n> = sizeof(text)){/*ohcrap*/}` (2认同)