确定是否字符是一个数字或字母

如何确定C或C中的char是数字还是字母?

使用更好吗?

 int a = Asc(theChar); 

或这个?

 int a = (int)theChar 

您将要在<ctype.h>使用isalpha()isdigit()标准函数。

 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?"); } 

字符只是整数,所以你可以直接比较字符和文字:

 if( c >= '0' && c <= '9' ){ 

这适用于所有字符。 看你的ASCII表 。

ctype.h也提供了为你做这个的function。

<ctype.h>包含一系列用于确定char代表字母或数字的函数,如isalphaisdigitisalnum

之所以int a = (int)theChar不会做你想做的事情,因为a将只保存表示特定字符​​的整数值。 例如, '9'的ASCII码是57, 'a'是97。

也用于ASCII:

  • 数字 – if (theChar >= '0' && theChar <= '9')
  • 按字母顺序 –
    if (theChar >= 'A' && theChar <= 'Z' || theChar >= 'a' && theChar <= 'z')

看一看ASCII表格 ,看看你自己。

这些都没有什么用处。 使用标准库中的isalpha()isdigit() 。 他们在<ctype.h>

如果(theChar >= '0' && theChar <='9')这是一个数字。 你明白了。

c >= '0' && c <= '9' C99标准c >= '0' && c <= '9'

c >= '0' && c <= '9' ( 在另一个答案中提到)因为C99 N1256标准草案 5.2.1“字符集”说:

在源和执行基本字符集中,上述十进制数字列表中的0之后的每个字符的值应该大于前一个的值。

但是不能保证ASCII。

您通常可以使用简单的条件检查字母或数字

 if((ch>='a' && ch<='z') || (ch>='A' && ch<='Z)) { /*This is an alphabet*/ } 

您可以使用数字

 if(ch>='0' && ch<='9') { /*It is a digit*/ } 

但是由于C中的字符在内部被视为ASCII值,所以您也可以使用ASCII值来检查相同的值。

如何检查一个字符是数字还是字母

Interesting Posts