Determine if char is a num or letter
You'll want to use the isalpha()
and isdigit()
standard functions in <ctype.h>
.
char c = 'a'; // or whatever
if (isalpha(c)) {
puts("it's a letter");
} else if (isdigit(c)) {
puts("it's a digit");
} else {
puts("something else?");
}
chars are just integers, so you can actually do a straight comparison of your character against literals:
if( c >= '0' && c <= '9' ){
This applies to all characters. See your ascii table.
ctype.h also provides functions to do this for you.
<ctype.h>
includes a range of functions for determining if a char
represents a letter or a number, such as isalpha
, isdigit
and isalnum
.
The reason why int a = (int)theChar
won't do what you want is because a
will simply hold the integer value that represents a specific character. For example the ASCII number for '9'
is 57, and for 'a'
it's 97.
Also for ASCII:
- Numeric -
if (theChar >= '0' && theChar <= '9')
- Alphabetic -
if (theChar >= 'A' && theChar <= 'Z' || theChar >= 'a' && theChar <= 'z')
Take a look at an ASCII table to see for yourself.
Neither of these does anything useful. Use isalpha()
or isdigit()
from the standard library. They're in <ctype.h>
.