请注意,我并没有像 ctype.h 中的 isalpha() 这样的函数那样尝试区分单个数字和字母(或其他字符)
我正在尝试区分整数和字母表。
问题是字母表在 C 中也被视为整数,我想不出出路。
例如:如果输入是 字母a, 它与整数 97 的 'a' 相同。
我需要确定输入的是“a”还是 97。
我尝试这样做,但发现它根本行不通。
int a;
scanf("%d", &a);
if( (a>='A' && a<='Z') || (a>='a' && a<='z') )
{
printf("\nAlphabet");
}
最佳答案
检查scanf()
的返回值
int val;
int chk = sscanf("a", "%d", &val);
if (chk == 1) /* all ok */;
if (chk == 0) /* no assignments */;
if (chk == EOF) /* error */;
或
int val;
int chk = sscanf("97", "%d", &val);
if (chk == 1) /* all ok */;
if (chk == 0) /* no assignments */;
if (chk == EOF) /* error */;
或
int val1, val2, val3;
int chk = sscanf("97 b 99", "%d%d%d", &val1, &val2, &val3);
if (chk == 3) /* all ok */;
if (chk == 2) /* only val1 and val2 were assigned a value */;
if (chk == 1) /* only val1 was assigned a value */;
if (chk == 0) /* no assignments */;
if (chk == EOF) /* error */;
关于c - C语言区分字母和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119000/