0

How can I convert a number char in a buffer to an int.

I use:

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

However, this returns the decimal code (e.g. if buffer[i] = '2', number = 50).

How can I interpret this char number as an int?

4

1 に答える 1

4

文字コードから文字コードを差し引くことができます0(数字の文字コードは連続しており、0 (ascii 48) - 9 (ascii 57) から実行されます)。最初に使用isdigitして、文字が範囲外でないことを確認してください'0'-'9'

int num = 0;
if (isdigit(buffer[i]) {
    num = buffer[i] - '0';
}
于 2013-02-18T17:19:08.257 に答える