有没有办法在C中传递这样的字符串?

时间:2016-09-19 08:07:58

标签: c string function parameter-passing

我有一个接受字符数组(即字符串)作为参数的函数。

但是整数变量的值也应该作为字符串的一部分打印出来。

例如, 如果我有这样的功能:

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

2 个答案:

答案 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 functionsGCC format attributes对构建您的东西很有用。但是,您需要使用GCC作为属性,并且没有任何可移植到其他编译器的计划。

然而,我不会搞砸这些东西,并找出一种没有这个的方法。