我正在学习函数是如何在c中工作的,我正在做这个练习,它必须计算一个字符串中的人声数量。问题是它总是输出4199835个人声。
下面是代码(在Windows10和编译器devc++上运行):
#include <stdio.h>
#include <string.h>
char cadena[100];
int vocals();
int voc,i;
int main(){
fgets(cadena, sizeof(cadena),stdin);
strtok(cadena,"\n");
vocals(cadena);
printf("Hi ha %d vocals",vocals);
}
int vocals(char string[100]){
for (i=0;i<=strlen(string);i++){
switch(string[i]){
case 'a':
voc++;
break;
case 'e':
voc++;
break;
case 'i':
voc++;
break;
case 'o':
voc++;
break;
case 'u':
voc++;
break;
}
}
return voc;
}发布于 2020-11-26 00:48:40
更通用一点:
size_t count(const char *str, const char *tosearch)
{
size_t cnt = 0;
while(*str)
{
if(strchr(tosearch, *str++)) cnt++;
}
return cnt;
}用法
printf("%zu\n", count("Test sentence", "aeiouAEIOU"));https://stackoverflow.com/questions/65008976
复制相似问题