我试图编写一个检测字符串中元音和数字的函数。迭代字符串,我试图做一行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的不同类型。任何人都可以帮助我吗?感谢
答案 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