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>
using
namespace
std;
char
s[500], c[500];
int
main()
{
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);
}
return
0;
}
原文:http://blog.csdn.net/wxq_wuxingquan/article/details/26108981