0

我试图编写一个函数来检测字符串中的元音和数字。遍历字符串,我试图做一个单行 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 的不同类型。有人可以帮我吗?谢谢

4

1 回答 1

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 
于 2013-02-11T10:54:53.067 回答