誰能告訴我如何將a轉(zhuǎn)換char為int?char c[]={'1',':','3'};int i=int(c[0]);printf("%d",i);當我嘗試時,它給出49。
3 回答

嚕嚕噠
TA貢獻1784條經(jīng)驗 獲得超7個贊
在過去,當我們可以假設(shè)大多數(shù)計算機使用ASCII時,我們只會
int i = c[0] - '0';
但是在如今的Unicode中,這不是一個好主意。如果您的代碼必須在非ASCII計算機上運行,這絕不是一個好主意。
編輯:盡管它看起來有點黑,但顯然它是由標準保證的。謝謝@Earwicker。

有只小跳蛙
TA貢獻1824條經(jīng)驗 獲得超8個贊
標準功能atoi()可能會做您想要的。
一個使用“ atoi”的簡單示例:
#include <unistd.h>
int main(int argc, char *argv[])
{
int useconds = atoi(argv[1]);
usleep(useconds);
}

素胚勾勒不出你
TA貢獻1827條經(jīng)驗 獲得超9個贊
實際上C標準確實可以保證這一點。第2.2.1段“在源和執(zhí)行基本字符集中,上述十進制數(shù)字列表中的每個字符在0之后的值都應(yīng)比前一個值大1?!?nbsp;因此,您的答案在符合標準的C實現(xiàn)中完全正確。
- 3 回答
- 0 關(guān)注
- 488 瀏覽
添加回答
舉報
0/150
提交
取消