include
include
void main() {
char ch;
clrscr();
printf("Enter a character:");
scanf("%c",&ch);
switch(ch) {
case 'a': case 'A': case 'e': case 'E': case 'i': case'I': case'o': case'O': case'u': case'U':
printf("Vowel");
break;
default:
printf("Consonant");
getch();
}
还具有一项功能,如果我们以数字或某些特殊字符(如@,#等)形式输入,则该输入应显示为无效而不是辅音,请迅速提供帮助
答案 0 :(得分:3)
您可以使用isalpha()
查看字符是否为字母。而且,您可以通过使用case
将字符转换为小写字母来减少使用的tolower()
语句的数量,这使代码更简单,而且您不太可能错过某些内容。
if(isalpha(ch)) {
switch(tolower(ch)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("Vowel");
break;
default:
printf("Consonant");
break;
}
} else {
printf("Invalid");
}
答案 1 :(得分:0)
#include<stdio.h>
#include<conio.h>
void main()
{
char ch;
printf("Enter a character:");
scanf("%c",&ch);
if((ch >= 65 && ch <= 90)||(ch >= 97 && ch <= 122))
switch(ch)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case'I':
case'o':
case'O':
case'u':
case'U':
printf("Vowel");
break;
default:
printf("Consonant");
}
else
printf("Invalid");
}
答案 2 :(得分:0)
一个选项是strchr
。它可以查找字符串中特定字符的出现,并且据说优化得很好。
bool isvowel (char ch)
{
return strchr("aeiou", tolower(ch)) != NULL;
}
就是这样。完整示例:
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
bool isvowel (char ch)
{
return strchr("aeiou", tolower(ch)) != NULL;
}
int main (void)
{
for(unsigned char i='A'; i<='Z'; i++)
{
char ch = (char)i;
printf("%c: %s\n", ch, isvowel(ch) ? "vowel" : "consonant");
}
}