Convert a character digit to the corresponding integer in C

As per other replies, this is fine:

char c="5";
int x = c - '0';

Also, for error checking, you may wish to check isdigit(c) is true first. Note that you cannot completely portably do the same for letters, for example:

char c="b";
int x = c - 'a'; // x is now not necessarily 1

The standard guarantees that the char values for the digits ‘0’ to ‘9’ are contiguous, but makes no guarantees for other characters like letters of the alphabet.

Leave a Comment