使用开关大小写编写c程序以查找字符是元音还是辅音

时间:2018-11-30 12:40:31

标签: c

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();
    }

还具有一项功能,如果我们以数字或某些特殊字符(如@,#等)形式输入,则该输入应显示为无效而不是辅音,请迅速提供帮助

3 个答案:

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

在这里,我使用了ASCII的概念。请在此处参考ASCII值。enter image description here

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