题目描述:输入一个句子(带有多余空格的)并输出去掉多余空格后的句子
这看似简单,实际上一点也不简单
分析,我们可以定义一个函数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;
}