[英]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.