我有一个接受字符数组(即字符串)作为参数的函数。
但是整数变量的值也应该作为字符串的一部分打印出来。
例如, 如果我有这样的功能:
int var=10;
void printStr(char str[])
{
printf("%s", str);
}
我需要用消息
打印整数变量'var'的值“var的值是%d”,var
我试过这个
printStr( ("The value of var is %d", var) );
但它不起作用。
有没有办法在不将变量作为参数传递给printStr()
的情况下完成此操作?
这种情况下的输出应为
var的值是10
答案 0 :(得分:6)
您似乎需要函数sprintf
/ snprintf
来生成字符串。
尝试这样的事情:
char tempStr[30];
snprintf(tempStr, sizeof(tempStr), "The value of var is %d", var);
printStr(tempStr);
这是你需要的吗?
答案 1 :(得分:1)
也许您可能会发现variable number of arguments to functions和GCC format attributes对构建您的东西很有用。但是,您需要使用GCC作为属性,并且没有任何可移植到其他编译器的计划。
然而,我不会搞砸这些东西,并找出一种没有这个的方法。