簡體   English   中英

C ++將Ascii Int轉換為Char至Int

[英]C++ Convert Ascii Int To Char To Int

我能夠毫無問題地轉換大多數東西,如果需要的話可以使用谷歌搜索。 不過,我無法弄清楚這一點。

我有一個像char數組:

char map[40] = {0,0,0,0,0,1,1,0,0,0,1,0,1... etc

我正在嘗試將char轉換為正確的整數,但是無論我嘗試什么,我都會得到ascii值:48/49。

我已經嘗試了很多轉換和強制轉換的不同組合,但是即使將其作為字符,也無法以0或1結束。

誰能幫我這個忙嗎? 謝謝。

代表整數的字符的ascii范圍是48到57(對於“ 0”到“ 9”)。 您應該從字符中減去基值48以獲得其整數值。

char map[40] = {'0','0','0','0','0','1','1','0','0','0','1','0','1'...};
int integerMap[40];

for ( int i = 0 ;i < 40; i++)
{
   integerMap[i] = map[i] - 48 ;
   // OR
   //integerMap[i] = map[i] - '0';


}

如果char是文字,例如'0' (請注意引號),則要轉換為int,您必須執行以下操作:

int i = map[0] - '0';

當然,您在整個map數組中也執行類似的操作。 進行錯誤檢查也是明智的,因此您知道結果int的范圍是0-9。

您得到48/49的原因是,正如您指出的那樣,直接轉換像int i = (int)map[0];這樣的文字int i = (int)map[0]; 給出char的ASCII值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM