2012-11-18 28 views
-2

我想在單個字符數組索引中存儲一個整數。在這種情況下,itoa函數不起作用。誰能幫忙?如何將整數存儲在字符數組的單個索引中?

+0

你是什麼意思「單個索引中的單個整數」? –

+0

在char數組的單個*元素中? – peterph

+0

是在字符數組的單個元素中是 int num; char arr [10]; arr [0] = num; 但我沒有得到正確的值。 – Salman

回答

7

如果你的意思是你要使用的整數作爲字符值,並把它放在一個陣列,那麼它只是

array[index] = number; 

如果你的意思是你要編寫一個位數的值到一個數組的某個特定索引,然後

if (number >= 0 && number < 10) { 
    array[index] = '0' + number; 
} else { 
    // not representable by a single digit 
} 

UPDATE:從您的意見,這可能是你想要的。

如果您的意思是要將數字的十進制表示形式寫入數組(不僅包含一個字符元素),則不要使用itoa,因爲這是非標準且危險的。 snprintf能做到這一點更安全:

if (snprintf(array, array_size, "%d", number) >= array_size) { 
    // the array was too small 
} 

或者,因爲這是C++,你可以使用std::string來管理內存,爲您和保證陣列足夠大:

std::string string = std::to_string(number); 

,或者,如果你'卡住了過時的C++庫

std::ostringstream ss; 
ss << number; 
std::string string = n.str(); 

如果你的意思是別的,那麼請澄清。

相關問題