QQ有一个群聊天系统,方便很多人在一起聊天。现在有一个群聊天的历史记录,请你统计一下每个人说了多少。
输入有很多行,每行首先是一个人的昵称,然后一个冒号,一个空格,接着是这个人说过的话,比如: (yamadie: womenlailolba!)。昵称只包含大小写字母,长度不超过10。聊天内容仅包含大小写字母、数字及标点符号(,./|+-=:‘[]<>?*%#!()),长度不超过100。 每组数据以“--------”结束,每组数据不超过1000行。
对于每组数据,聊天人名按字典序排序,对于每个聊天人输出其聊天总的字符数。一个人一行。 每组数据末尾包含一行“分隔符”。
Maxx: lalala! Daidao: hehe! Moonyu: bieshuohua! --------
Daidao: 5 Maxx: 7 Moonyu: 11
代码如下:
#include<cstdio>#include<algorithm>#include<string>#include<map>#include<cstring>usingnamespacestd;chars[500], c[500];intmain(){map<string,int> m;while(~scanf("%s", s)){if(strcmp(s,"--------") == 0){map<string,int>::iterator it;it = m.begin();while(it != m.end()){printf("%s: %d\n", it->first.c_str(), it->second);it++;}puts("--------");m.clear();continue;}s[strlen(s) - 1] = 0;scanf("%s", c);string st = s;m[st] +=strlen(c);}return0;}
原文:http://blog.csdn.net/wxq_wuxingquan/article/details/26108981