解题思路:
        两个点:

                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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论