【发布时间】:2013-02-11 10:43:55
【问题描述】:
我正在尝试编写一个函数来检测字符串中的元音和数字。遍历字符串,我试图做一个单行 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 的不同类型。有人可以帮我吗?谢谢
【问题讨论】:
-
你加入了
string.h吗? -
在将 str* 传递给函数之前尝试将其类型转换为 char
-
@Techmonk 你不需要投射任何东西,因为
*str已经是char。它应该按原样工作。 -
只有两个注释:(1)顺便说一句,英语也不认为'y'也是元音吗? (我是捷克人,所以这里不确定。但在捷克语中它也是元音。) (2) 请注意,有些语言有更多元音(例如 ě、á、í、é 等)
-
@mity
y是“模糊的”。它是type和pity等单词中的元音,但不是boy和yell等单词中的元音。