从char * buffer中的number获取int

时间:2013-02-18 17:16:19

标签: c++ c

如何将缓冲区中的数字char转换为int。

我用:

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

但是,这会返回十进制代码(例如buffer[i] = '2'number = 50)。

如何将此char编号解释为int?

1 个答案:

答案 0 :(得分:4)

您可以从0的字符代码中减去您的字符代码(数字的字符代码是连续的,从0开始(ascii 48) - 9(ascii 57))。请务必先使用isdigit检查字符是否超出范围'0' - '9'

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