首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++上的人声计数函数

C++上的人声计数函数
EN

Stack Overflow用户
提问于 2020-11-26 00:37:30
回答 1查看 126关注 0票数 0

我正在学习函数是如何在c中工作的,我正在做这个练习,它必须计算一个字符串中的人声数量。问题是它总是输出4199835个人声。

下面是代码(在Windows10和编译器devc++上运行):

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

发布于 2020-11-26 00:48:40

更通用一点:

代码语言:javascript
复制
size_t count(const char *str, const char *tosearch)
{
    size_t cnt = 0;
    while(*str)
    {
        if(strchr(tosearch, *str++)) cnt++;
    }
    return cnt;
}

用法

代码语言:javascript
复制
printf("%zu\n", count("Test sentence", "aeiouAEIOU"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65008976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档