Mon*_*ona 48 c alphanumeric char
如何确定一个char
在C如a
或者9
是一个数字或字母?
使用起来更好:
int a = Asc(theChar);
Run Code Online (Sandbox Code Playgroud)
或这个?
int a = (int)theChar
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 92
您将要使用isalpha()
和isdigit()
标准函数<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?");
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*lan 21
字符只是整数,所以你实际上可以直接比较你的字符与文字:
if( c >= '0' && c <= '9' ){
Run Code Online (Sandbox Code Playgroud)
这适用于所有角色. 请参阅您的ascii表.
ctype.h还提供了为您执行此操作的功能.
Aus*_*oke 14
<ctype.h>
包括一系列功能,用于确定a是char
代表字母还是数字,例如isalpha
,isdigit
和isalnum
.
之所以int a = (int)theChar
不能做你想要的是因为它a
只是保存代表特定字符的整数值.例如,ASCII数字为'9'
57,而'a'
它的数字为97.
也适用于ASCII:
if (theChar >= '0' && theChar <= '9')
if (theChar >= 'A' && theChar <= 'Z' || theChar >= 'a' && theChar <= 'z')
看一下ASCII表,亲眼看看.
您通常可以使用简单的条件检查 ASCII 字母或数字
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
/*This is an alphabet*/
}
Run Code Online (Sandbox Code Playgroud)
对于数字,您可以使用
if (ch >= '0' && ch <= '9')
{
/*It is a digit*/
}
Run Code Online (Sandbox Code Playgroud)
但是由于 C 中的字符在内部被视为ASCII 值,因此您也可以使用 ASCII 值来检查相同的值。