罗小白


私信TA

用户名:Timmmmy

访问量:16483

签 名:

隔一年又回来刷题了...

等  级
排  名 141
经  验 7202
参赛次数 0
文章发表 46
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有问题可以互相交流,共同提高 欢迎私信,请多指教:)

解题思路:
        两个点:

                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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区