检测字符串中的元音

时间:2013-02-11 10:43:55

标签: c string strchr

我试图编写一个检测字符串中元音和数字的函数。迭代字符串,我试图做一行if语句来检查一个字符是否是一个元音。代码如下......

void checkString(char *str)
{
    char myVowels[] = "AEIOUaeiou";

    while(*str != '\0')
    {
        if(isdigit(*str))
            printf("Digit here");
        if(strchr(myVowels,*str))
            printf("vowel here");
        str++;
    }
}

数字检查完美无缺。然而“(strchr(myVowels,* str))”不起作用。它说正式和实际参数1的不同类型。任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:1)

很可能你没有包含正确的头文件。

这很好用:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

void checkString(const char *str)
{
    char myVowels[] = "AEIOUaeiou";

    printf("checking %s... ", str);

    while(*str != '\0')
    {
        if(isdigit(*str))
            printf("Digit here ");
        if(strchr(myVowels,*str))
            printf("vowel here ");
        str++;
    }

    printf("\n");
}

int main(void)
{
  checkString("");
  checkString("bcd");
  checkString("123");
  checkString("by");
  checkString("aye");
  checkString("H2CO3");
  return 0;
}

输出(ideone):

checking ... 
checking bcd... 
checking 123... Digit here Digit here Digit here 
checking by... 
checking aye... vowel here vowel here 
checking H2CO3... Digit here vowel here Digit here