2013-02-16 318 views
0

我有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

回答

3

使用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

1
char tmp[32]={0x0}; 
sprintf(tmp, "%d %c", x, c); 
printf("%s\n", tmp); 

printf("%d %c\n", x, c); 
1

的sprintf()可以做你想做什麼:

sprintf(str, "%d %c", x, c); 
1

既然你要打印出的信息,沒有理由(我可以看到)的數據先轉換成字符串。剛打印出來:

printf("%d %c", x, c); 
+0

+1指出直接調用'printf'。 – LihO 2013-02-16 23:45:48