如何将缓冲区中的数字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?
答案 0 :(得分:4)
您可以从0
的字符代码中减去您的字符代码(数字的字符代码是连续的,从0开始(ascii 48) - 9(ascii 57))。请务必先使用isdigit
检查字符是否超出范围'0'
- '9'
int num = 0;
if (isdigit(buffer[i]) {
num = buffer[i] - '0';
}