2013-02-18 40 views
0

如何將緩衝區中的數字char轉換爲int。從char *緩衝區的數字得到int

我使用:

char *buffer = somebuffer; 
int number; 
number = int(buffer[i]); // pointer to a number stored as a char 

然而,這將返回十進制碼(例如,如果buffer[i] = '2'number = 50)。

我該如何解釋這個字符數爲int?

回答

4

您可以從0的字符代碼中減去您的char代碼(數字的字符代碼是連續的,並且從0(ascii 48) - 9(ascii 57))運行。一定要使用isdigit首先要檢查的字符不在此範圍之外'0' - '9'

int num = 0; 
if (isdigit(buffer[i]) { 
    num = buffer[i] - '0'; 
} 
+0

這不一定是一個ASCII碼。改爲使用「字符代碼」一詞。 – 2013-02-18 17:20:09

+0

@ H2CO3謝謝,(希望)現在糾正 – simonc 2013-02-18 17:21:06

+0

好的。 Upvoted。 – 2013-02-18 17:21:53