Re: [問題] 請問如何計算每個字母的字數

看板C_and_CPP作者 (賢賢)時間16年前 (2009/12/07 21:20), 編輯推噓4(4011)
留言15則, 4人參與, 最新討論串3/3 (看更多)
以下是我打的,可是跑出來不對,請幫我檢查看看哪裡出問題了: #include <iostream> #include <iomanip> using namespace std; int main() { cout <<"Input:"<<endl; string word; getline(cin,word); int count[26]; //26個字母 for(int a=0;a<26;a++) count[a]=0; for(int i=0;i<word.size()+1;i++) { for(int j=65;j<=90;j++) //ASCII { if(word[i]==j||word[i]==(j+32)) count[j-('A')]++; //從count[0]開始存 else continue; } } for(int k=0;k<26;k++) cout <<count[k]<<endl; //輸出count[0]~count[25] system("pause"); return 0; } 我看不出哪裡不對,但輸出都差很多..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59

12/07 21:27, , 1F
int count[26]; 歸零了沒...
12/07 21:27, 1F

12/07 21:28, , 2F
怎麼歸零?我不太會.是要{0,0,0,0....}?還市直接=0?
12/07 21:28, 2F

12/07 21:29, , 3F
剛是過.這兩個都不行> <
12/07 21:29, 3F

12/07 21:29, , 4F
除了歸零 應該word.size就好,不用+1
12/07 21:29, 4F

12/07 21:31, , 5F
可以吧 用個for歸零或memset(count,'0',sizeof(int)*26);
12/07 21:31, 5F

12/07 21:33, , 6F
你會用for不會歸零...
12/07 21:33, 6F

12/07 21:33, , 7F
'\0'
12/07 21:33, 7F
我加上了那行綠色的,可是輸出全部變成0 > < ※ 編輯: Ducray 來自: 140.112.7.59 (12/07 21:36)

12/07 21:36, , 8F
memset第二個參數是int...所以是 ,0, 啦...
12/07 21:36, 8F

12/07 21:46, , 9F
要不要重compile 我測一下是對的
12/07 21:46, 9F

12/07 21:48, , 10F
用了好幾次了.我隨便輸入字母,輸出還整排都0
12/07 21:48, 10F

12/07 21:49, , 11F
會不會是因為輸入是小寫字母?
12/07 21:49, 11F

12/07 21:51, , 12F
大寫也一樣.而且我大小寫也都要包含...
12/07 21:51, 12F

12/07 21:53, , 13F
喔OK了!!!
12/07 21:53, 13F

12/07 21:55, , 14F
是什麼問題?
12/07 21:55, 14F

12/07 21:57, , 15F
我剛剛改變&&跟同學說這樣不行.結果忘了改回來XD
12/07 21:57, 15F
文章代碼(AID): #1B7G42ln (C_and_CPP)
文章代碼(AID): #1B7G42ln (C_and_CPP)