Gordonewqewq 2016-04-28 15:55 采纳率: 50%
浏览 1264

c++新手,请大家帮忙看一看代码哪错了

要求:用户输入一段话,输出每个单词出现的次数
如输入:hello my friend . I miss you , my friend
输出:单词 次数
hello 1
my 2
friend 2
I 1
miss 1
you 1

#include
#include
#include

using namespace std;

int main()
{

string sen;//用来记录用户输入的句子
string word[100];
int a,b;
int times;//用来计相同单词的数目

string::size_type first=0,end=0;
int counter=1;


cout<<"请输入一段话:";
getline(cin,sen);
int i=0;//word数组的下标

//将所有标点符号转化为空格
for(int j = 0;j<sen.size();j++)
    {
        if(' ' == sen[j] || ',' == sen[j] || '.' == sen[j] || '!' == sen[j] || ';' == sen[j] || '?' == sen[j])
            sen[j] = ' ';
    }

//用空格作为分隔符将字符串中的单词分隔出来
while(1)
{

    if(((end=sen.find(' ',first)) != string::npos)||((end=sen.find('  ',first)) != string::npos)||((end=sen.find('   ',first)) != string::npos))
    {
        word[i++]=sen.substr(first,end-first);
        first=end+1;
        counter++;
    }


    else
        break;
}
word[i]=sen.substr(first,sen.size()-first);

cout<<"word"<<setw(13)<<"times"<<endl;
cout<<endl;
//对比字符串函数中单词出现的次数
for(a=0;a<counter-1;a++)
{
    times=0;
    for(b=0;b<counter;b++)
    {
        if(word[a] == word[b])
        times++;
    }
}

for(int k=0;k<counter;k++)
{
    cout<<word[k]<<setw(13)<<times<<endl;
}



return 0;

}
我的结果这么是这样啊?
图片说明
哪错了啊?我实在搞不懂了。。大家帮我看一看。。

  • 写回答

6条回答 默认 最新

  • Gordonewqewq 2016-04-28 15:56
    关注

    那三个include是
    #include
    #include
    #include

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能