对于我正在编写的程序,我需要使用 scanf()
仅扫描 0-9、A-Z 和 a-z 之间的字符。
我想我可以使用一些不错的比较运算符来帮助我实现我的目标。例如,也许这可行:
int i = 3;
char a[7] = {'a', 'b', 'c', '?', 'e', 'f', '\0'};
if (!(a[i] >= '0' && a[i] <= '9') && !(a[i] >= 'A' && a[i] <= 'Z') && !(a[i] >= 'a' && a[i] <= 'z'))
printf("not 0-9. A-Z, or a-z!\n");
换句话说,如果a[i]
中的字符不是数字或字母,则打印语句。但是,那没有用。还有其他选择吗?
最佳答案
C 标准库提供了测试字符为 digit 的函数或 letter :
if (!isalpha(a[i]) && !isdigit(a[i])) {
printf("Not a letter or a digit\n");
}
您需要包括 <ctype.h>
以便引用这些函数。
关于c - 我将如何编写只接受某些字符的 scanf() 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235408/