最近乐乐学会了使用电脑,她发现可以利用电脑解决很多事情,并且效率会快许多。比如,在一份名单中找某个人的姓名,在以前,她得依次逐个查找,速度慢又很容易看错。现在,她使用菜单命令:“编辑”-“查找”(或按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 }
原文:https://www.cnblogs.com/luoyoooo/p/12261678.html