Char Comparison in C

c, char, comparison

Solution

A `char` variable is actually an 8-bit integral value. It will have values from `0` to `255`. These are almost always ASCII codes, but other encodings are allowed. `0` stands for the C-null character, and `255` stands for an empty symbol.

So, when you write the following assignment:

char a = 'a'; 

It is the same thing as this on an ASCII system.

char a = 97;

So, you can compare two `char` variables using the `>`, `<`, `==`, `<=`, `>=` operators:

char a = 'a';
char b = 'b';

if( a < b ) printf("%c is smaller than %c", a, b);
if( a > b ) printf("%c is smaller than %c", a, b);
if( a == b ) printf("%c is equal to %c", a, b);

Note that even if ASCII is not required, this function will work because C requires that the digits are in consecutive order:

int isdigit(char c) {
    if(c >= '0' && c <= '9') 
        return 1;
    return 0;
} 

Problem

I'm trying to compare two chars to see if one is greater than the other. To see if they were equal, I used `strcmp`. Is there anything similar to `strcmp` that I can use?

Original source