0
關於我的任務的問題是我必須存儲數組中所有字母的計數,小寫字母和大寫字母的處理方式相同。我使用的策略是將所有字母轉換爲大寫,然後對它們進行計數。但是,當我嘗試打印輸出時,它不會給我正確的輸出。將一個文件的字母計數存儲到一個數組中
例如,我有讀取一個文件:
ADDADD
但對於輸出它給了我一些瘋狂的數字對每個字母。
這裏是我的代碼(有點亂):
void loadText(char story[])
{
FILE *input;
int letter = 0;
int other = 0;
int totalcharacter;
char words;
input = fopen(story, "r");
while(fscanf(input, "%c", &words) != EOF)
{
if ((words >= 'A') && (words <= 'z'))
{
letter++;
}
else
{
other++;
}
}
totalcharacter = letter + other;
printf("Letters: %d\n", letter);
printf("Characters: %d\n", totalcharacter);
int typeofletter[26];
int i = 0;
while(fscanf(input, "%c", &words) != EOF)
{
if ((words >= 'a') && (words <= 'z'))
{
words = toupper(words);
}
if((words >= 'A') && (words<='Z'))
{
typeofletter[words - 'A']++;
}
}
for(i = 0; i < 26; i++)
{
if(typeofletter[i] != 0)
{
printf("%c occurs %d times \n", i + 'A', typeofletter[i]);
}
}
}
調用字符的單詞是非常該死的混亂。 – zubergu
嘗試將'typeofletter'數組初始化爲0. 'int typeofletter [26] = {0}' – GoldRoger
您不檢查fopen的返回情況,因此您不知道是否實際打開了該文件。其次,你認爲fscanf在你的第二個循環中從哪裏讀取? – Asthor