解题思路:
两个点:
1、用string.find()找到空格所在的位置,用string.erase()擦除空格这一字符,直到字符串中没有空格
2、输入要用getline(cin, str)才能读取一整行(当然也有别的方法,不赘述)
cin>>str的话,只能读分隔符以前的进来(比如AAAB CD)只会读入AAAB
注意事项:
只针对这个题,deleteAllBlank函数其实稍加修改可以增强代码复用性,但我懒。
参考代码:
#include <iostream> #include <string> using namespace std; void deleteAllBlank(string& str) { while (true) { size_t pos = str.find(" "); if (pos == string::npos) return; str.erase(pos, 1); } } int main() { string str; while (getline(cin, str)) { deleteAllBlank(str); cout << str << endl; } return 0; }
0.0分
0 人评分
sizeof的大作用 (C语言代码)浏览:1028 |
单词个数统计 (C语言代码)浏览:1012 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:534 |
1197求助浏览:629 |
C语言训练-8除不尽的数 (C语言代码)浏览:1402 |
上车人数 (C语言代码)浏览:713 |
A+B for Input-Output Practice (II) (C语言代码)浏览:601 |
字符删除 (C语言代码)浏览:721 |
1202题解浏览:628 |
统计立方数 (C语言代码)浏览:865 |