首页 > 解决方案 > 我不知道如何在读取数组元素时迭代它们

问题描述

我正在尝试编写一个程序来查找给定字符串中的所有元音,但是我不知道如何让我的程序增加我的计数变量(numVowels)

我一直在寻找“获取迭代数组的大小”等。找不到任何特定于 C 的东西。

int num_vowels(char string[]){
    //int j;
    int i;
    int numVowels = 0;

    //iterate through string searching for vowels
    for(i = 0; i < sizeof(string); i++){

        //if any vowels found
        if (string[i] == 'a' ||string[i] == 'e' ||string[i] == 'i' ||string[i] 
        == 'o' ||string[i] == 'u'){

            //increase count
            numVowels++;
        }
    }
    //print count
    printf("Number of vowels: %d", numVowels);
    return 0;
}

输入工作正常,只是我无法让它打印数字元音,甚至无法确定它是否正在通过数组。

编辑:我知道,这是一个很长的 if 语句,我稍后会修复它

标签: carraysiteration

解决方案


对减少你的条件帮助不大if

#include <stdio.h>
#include <string.h>

int num_vowels(const char *string){
    int numVowels = 0;
    const char *wordToSearch = "aeiou";

    //loop on string
    for(int i = 0; i < strlen(string); i++) {
        //loop on wordToSearch
        for (int j = 0; j < strlen(wordToSearch); j++) {
            if (string[i] == wordToSearch[j]) {
                numVowels++;
            }
        }
    }
    printf("Number of vowels: %d", numVowels);
    return 0;
}

推荐阅读