Tal*_*lon 1 c lowercase char ctype uppercase
我正在获取用户输入,我想确定用户是否输入了字母,整数或运算符.我可以使用sscanf成功确定它是否是一个整数,但我很难知道如何确定它是否是一个字母.
通过信件,我的意思是:AZ,az.
int main(){
char buffer[20];
int integer;
printf("Enter expression: ");
while (fgets(buffer, sizeof(buffer), stdin) != NULL){
char *p = strchr(buffer, '\n'); //take care of the new line from fgets
if (p) *p = 0;
//Buffer will either be a integer, an operator, or a variable (letter).
//I would like a way to check if it is a letter
//I am aware of isalpha() but that requires a char and buffer is a string
//Here is how I am checking if it is an integer
if (sscanf(buffer, "%d", &integer) != 0){
printf("Got an integer\n");
}
else if (check if letter)
// need help figuring this out
}
else{
// must be an operator
}
}
}
Run Code Online (Sandbox Code Playgroud)
要确定输入是字母还是数字:
int isalpha ( int c );函数验证是否c是字母.int isalnum ( int c );用于验证c是十进制数字还是大写或小写字母的函数.int isdigit ( int c );用于验证是否c为十进制数字字符的函数.要确定字母是大写还是小写:
int islower ( int c );检查是否c是小写字母:azint isupper ( int c );检查是否c是大写字母:AZ根据结果将它们放入if做某事(true或false)的陈述中.
PS您可以在此处找到有关标准库的更多信息:字符处理函数:ctype.h
您可以使用isalpha()和isdigit()标准功能.只是包括<ctype.h>.
if (isdigit(integer)) != 0){
printf("Got an integer\n");
}
else if (isalpha(integer))
printf"Got a char\n");
}
else{
// must be an operator
}
Run Code Online (Sandbox Code Playgroud)