其他分享
首页 > 其他分享> > [字符串处理]7-11 甜蜜的烦恼 (25分)

[字符串处理]7-11 甜蜜的烦恼 (25分)

作者:互联网

最近乐乐学会了使用电脑,她发现可以利用电脑解决很多事情,并且效率会快许多。比如,在一份名单中找某个人的姓名,在以前,她得依次逐个查找,速度慢又很容易看错。现在,她使用菜单命令:“编辑”-“查找”(或按Ctrl+F键),在弹出的查找对话框中,输入要查找的姓名,电脑就会找到要找的姓名或告诉你不存在你要找的姓名了。真是又快又准,太爽了! 今天邦邦在查找时,输入“章可”,电脑告诉她不存在,但她不经意间发现“章 可”是有的!原来,提供原始名单的人,为了格式漂亮在中间输入了一个空格,因此电脑找不到了。她想这容易解决,继续查找“张程龄”,没有?查找“张 程 龄”(中间一个空格),还没有?原来某些姓名中间的空格数是有多个的! 邦邦想删除所有姓名中间的空格,但由于名单很多,一个一个删除太慢了,所以她找到了会编程解决问题的你,请你写一个程序,删除所有名单中间的空格。

【数据限制】100%的数据,1≤n≤10000,每行姓名的字符数不超过100。

输入格式:

第一行只有一个正整数n,表示名单中共有n个人的姓名。 第二行至第n+1行共n行,每行是一个人的姓名(由大小写英文字母以及字母之间的空格组成)。

输出格式:

有n+1行,第一行只有一个正整数,表示总共删除的空格数。 第二行至第n+1行共n行,每行表示一个删除空格后的姓名(按照输入姓名的次序)。

输入样例:

3
JiangDongRun
Xu Kai Yang
Ye Han  Xi

输出样例:

5
JiangDongRun
XuKaiYang
YeHanXi

 

思路:字符串模拟,题目很简单不详细解释代码了

 

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 using namespace std;
 5 int main()
 6 {
 7     int n, sum = 0, k = 0;
 8     string s;
 9     cin >> n;
10     cin.get();
11     vector<vector<char>>v(n);
12     for (int i = 0; i < n; i++)
13     {
14         getline(cin, s);
15         for (int j = 0; j < s.length(); j++)
16         {
17             if (s[j]!=' ')
18             {
19                 v[i].push_back(s[j]);
20             }
21             else
22             {
23                 sum++;
24             }
25         }
26     }
27     cout << sum << endl;
28     for (int i = 0; i < n-1; i++)
29     {
30         for (int j = 0; j < v[i].size(); j++)
31         {
32             cout << v[i][j];
33         }
34         cout << endl;
35     }
36     for (int j = 0; j < v[n-1].size(); j++)
37     {
38         cout << v[n-1][j];
39     }
40 }

 

标签:11,25,删除,int,甜蜜,空格,查找,姓名,输入
来源: https://www.cnblogs.com/luoyoooo/p/12261678.html