将int和char转换为字符串
问题描述:
我有int x
和char c
。我想创建一个名为str
的新字符串作为“x c”;所以int,一个空格和char。将int和char转换为字符串
因此,例如:
x = 5, c = 'k'
//concatenate int and char with a space in between.
太行printf("%s", str)
会打印:
5 k
如何在C代码做到这一点?
答
使用sprintf
或snprintf
避免你的代码的安全性是建立在假设您的缓冲区将永远不够大:
char str[100];
sprintf(str, 100, "%d %c", x, c);
但万一只有str
的用途将被用于与printf
,然后直接printf
:
printf("%d %c", x, c);
...只是不使用,因为itoa
“这个功能不在ANSI-C定义为的C++不部分”
这些问题也可能对您有所帮助:
How to convert an int to string in C
Converting int to string in c
答
char tmp[32]={0x0};
sprintf(tmp, "%d %c", x, c);
printf("%s\n", tmp);
或
printf("%d %c\n", x, c);
答
的sprintf()可以做你想做什么:
sprintf(str, "%d %c", x, c);
答
既然你要打印出的信息,没有理由(我可以看到)的数据先转换成字符串。刚打印出来:
printf("%d %c", x, c);
+0
+1指出直接调用'printf'。 – LihO 2013-02-16 23:45:48
查找的sprintf()/ snprintf的:'的snprintf(海峡,的sizeof海峡, “%d%C”,X,C);' – 2013-02-16 23:36:59
你只是想要打印的““或者您是否需要其他用途的字符串?如果前者,你应该简单地使用'printf()'来为你做所有的工作。 –
2013-02-16 23:39:12