我有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代碼做到這一點?
我有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);
+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