编程计算字符串中的元音、辅音、数字、空白符。刚学数组

编程计算字符串中的元音、辅音、数字、空白符。

【输入样例】

runoob123 erkcomsww dfrunoob

【输出样例】

vowel:8

consonant:15

number:3

space:2

输入输出均无换行


#include <stdio.h>

int main(void) { 
    char s[1000];
    gets(s);
    int a=0,b=0,c=0,d=0;
    for(int i=0;s[i]!='\0';i++){
        if(s[i]>='a'&&s[i]<='z'){
            if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u')a++;
            else b++;
        }
        else if(s[i]>='A'&&s[i]<='Z'){
            if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U')a++;
            else b++;
        }
        else if(s[i]>='0'&&s[i]<='9'){
            c++;
        }
        else if(s[i]==' '){
            d++;
        }
    }
    printf("vowel:%d\n",a);
    printf("consonant:%d\n",b);
    printf("number:%d\n",c);
    printf("space:%d",d);
    return 0;
}
#include <stdio.h>
#include <ctype.h>

#define N 256

int isvowel(char ch)
{
    switch (ch)
    {
    case 'a':
    case 'A':
    case 'e':
    case 'E':
    case 'i':
    case 'I':
    case 'o':
    case 'O':
    case 'u':
    case 'U':
        return 1;
    default:
        break;
    }
    return 0;
}

int isconsonant(char ch)
{
    if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
        return !isvowel(ch);
    else
        return 0;
}

int main()
{
    char a[N];
    int vowel_count = 0;
    int consonant_count = 0;
    int digit_count = 0;
    int space_count = 0;
    gets(a);
    const char *p = a;
    while (*p)
    {
        if (isvowel(*p))
            vowel_count++;
        else if (isconsonant(*p))
            consonant_count++;
        else if (isdigit(*p))
            digit_count++;
        else if (isspace(*p))
            space_count++;
        p++;
    }
    printf("vowel:%d\nconsonant:%d\nnumber:%d\nspace:%d\n", vowel_count, consonant_count, digit_count, space_count);
    return 0;
}