c - 我不知道如何在读取数组元素时迭代它们
问题描述
我正在尝试编写一个程序来查找给定字符串中的所有元音,但是我不知道如何让我的程序增加我的计数变量(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 语句,我稍后会修复它
解决方案
对减少你的条件帮助不大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;
}