我正在嘗試創建一個計算字符串中元音的程序。當打印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'也可能很有吸引力。 –