2016-12-09 173 views
0

我想的整數轉換爲像字符串:函數與atoi()相反?

int a = 12345 

覆羽到

char b[6] = "12345" 

基本上是一個字符串轉換爲整數的函數的atoi的相反。

+0

sprintf()with'%d'? – bwoebi

+0

'char b [5]' - >'char b [6]'或更多 – BLUEPIXY

+0

'char * t = s + sizeof(s); * - t = 0; do {* - t =(n%10)+'0'; N/= 10; } while(n);'(爲負數添加一個測試)字符串數字在't'。 –

回答

3
#include <stdio.h> 
int sprintf(char *str, const char *format, ...); 

char str[10]; 
sprintf(str,"%d", 12345); 
+0

感謝您的簽名,但你如何使用它? –

+0

char str [10]; sprintf(str,「%d」,12345); – vonzhou

-2

使用itoa()。這應該做的伎倆(只有一些編譯器有它)

+2

不標準... –

+0

@ringø您的意思是? – Heatblast016

+0

[這是我的意思](http://stackoverflow.com/questions/8257714/how-to-convert-an-int-to-string-in-c) –

2

來源:Here

的char * itoa(int值,字符*海峽,INT基地)

將整數 轉換爲字符串(非標準函數)將整數值轉換爲 使用指定基數的以null結尾的字符串,並將結果 存儲在由str參數給出的數組中。

如果基數爲10且值爲負值,則結果字符串的前面會加上負號( - ),即 。對於任何其他基數,值總是被認爲是無符號的 。

str應該是一個長度足以包含任何可能值的數組: (sizeof(int)* 8 + 1)for radix = 2,即16位平臺中的17字節和32位平臺中的33。

但是未在ANSI-C定義並且不的一部分C++

對於一些情況下一個符合標準的替代方案可以是sprintf的:

  • 的sprintf(STR, 「%d」 ,值)轉換爲十進制基數。