我正在尝试创建一个计算字符串中元音的程序。当打印vowelsInString时,所有值都保持为零。无法在数组中添加整数
#include <stdio.h>
#include <stdlib.h>
void printfArray(int array[]);
int main()
{
char stringToTest[] = {}, vowels[5] = {'a', 'e', 'i', 'o', 'u'};
int i, j, numOfVowels, vowelsInString[5] = {0, 0, 0, 0, 0};
numOfVowels = 0;
printf("Enter: ");
scanf("%c", &stringToTest);
for(i=0; i<sizeof(stringToTest); i++)
{
for(j=0; j<sizeof(vowels); j++)
{
if(stringToTest[i] == vowels[j])
{
numOfVowels++;
vowelsInString[j]++;
printf("%d",vowelsInString[j]);
}
}
}
printfArray(vowelsInString);
}
void printfArray(int array[])
{
int i;
for(i=0; i<=sizeof(array); i++)
{
printf("%d\n", array[i]);
}
}
看起来它不符合第20行的if语句。为什么?
if(stringToTest[i] == vowels[j])
考虑到您没有指定大小并使用空初始化程序,您认为'stringToTest []'有多大?此外,'%c'告诉'scanf()'读*一个'char' *,而不是一个字符串。 – Dmitri
你可能会发现把元音变成'enum'可以让生活更简单。如果你可以使用'string.h'函数,使用几个*指针*和'strpbrk'也可能很有吸引力。 –