将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代码做到这一点?

+3

查找的sprintf()/ snprintf的:'的snprintf(海峡,的sizeof海峡, “%d%C”,X,C);' – 2013-02-16 23:36:59

+0

你只是想要打印的““或者您是否需要其他用途的字符串?如果前者,你应该简单地使用'printf()'来为你做所有的工作。 – 2013-02-16 23:39:12

使用sprintfsnprintf避免你的代码的安全性是建立在假设您的缓冲区将永远不够大:

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