c++难题去空格

题目描述:输入一个句子(带有多余空格的)并输出去掉多余空格后的句子

这看似简单,实际上一点也不简单

分析,我们可以定义一个函数removeExtraSpaces来对多余空格进行处理,用string字符串定义输入的句子,while循环来检测是否遇到空格,如果有空格就进行删减,我们还要用到累加器

以下是示例代码

#include <bits/stdc++.h>

 

// 函数用于删除句子中的多余空格

std::string removeExtraSpaces(const std::string& sentence) {

    std::istringstream iss(sentence);

    std::ostringstream oss;

    std::string word;

 

    while (iss >> word) {

        oss << word; // 直接将单词输出,不添加空格

        // 如果上一个单词后有空间,则在此添加一个空格

        if (iss.peek() == ' ') {

            oss << ' ';

            iss.ignore(); // 忽略额外的空格

        }

    }

 

    return oss.str();

}

 

int main() {

    std::string sentence;

    std::cout << "请输入一个句子:";

    std::getline(std::cin, sentence);

 

    std::string correctedSentence = removeExtraSpaces(sentence);

    std::cout << "修正后的句子:\"" << correctedSentence << "\"" << std::endl;

 

    return 0;

}

 

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值