作者Ducray (贤贤)
看板C_and_CPP
标题Re: [问题] 请问如何计算每个字母的字数
时间Mon Dec 7 21:20:00 2009
以下是我打的,可是跑出来不对,请帮我检查看看哪里出问题了:
#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
1F:→ ianfang:int count[26]; 归零了没... 12/07 21:27
2F:→ Ducray:怎麽归零?我不太会.是要{0,0,0,0....}?还市直接=0? 12/07 21:28
3F:→ Ducray:刚是过.这两个都不行> < 12/07 21:29
4F:推 winest:除了归零 应该word.size就好,不用+1 12/07 21:29
5F:→ winest:可以吧 用个for归零或memset(count,'0',sizeof(int)*26); 12/07 21:31
6F:→ ianfang:你会用for不会归零... 12/07 21:33
7F:推 winest: '\0' 12/07 21:33
我加上了那行绿色的,可是输出全部变成0 > <
※ 编辑: Ducray 来自: 140.112.7.59 (12/07 21:36)
8F:→ ianfang:memset第二个参数是int...所以是 ,0, 啦... 12/07 21:36
9F:推 winest:要不要重compile 我测一下是对的 12/07 21:46
10F:→ Ducray:用了好几次了.我随便输入字母,输出还整排都0 12/07 21:48
11F:→ bleed1979:会不会是因为输入是小写字母? 12/07 21:49
12F:→ Ducray:大写也一样.而且我大小写也都要包含... 12/07 21:51
13F:→ Ducray:喔OK了!!! 12/07 21:53
14F:推 winest:是什麽问题? 12/07 21:55
15F:→ Ducray:我刚刚改变&&跟同学说这样不行.结果忘了改回来XD 12/07 21:57