如何在C++中移除字符串中的所有空格?
时间: 2024-11-30 11:21:16 浏览: 68
在C++中,你可以使用`std::remove_if`和`std::copy`标准库函数,配合自定义的谓词函数来移除字符串中的所有空格。这里是一个简单的示例,它会创建一个新的字符串,其中不包含原字符串中的空格:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
// 自定义谓词函数,检查一个字符是否为空格
bool is_space(char c) {
return (c == ' ') || (c == '\t') || (c == '\n');
}
std::string remove_spaces(const std::string& input) {
std::string output;
output.reserve(input.size()); // 预估新字符串长度,避免多次动态分配
for (char c : input) {
if (!is_space(c)) {
output.push_back(c);
}
}
return output;
}
int main() {
std::string str = "Hello, World! This is a test.";
std::string result = remove_spaces(str);
std::cout << "Original string: " << str << "\n";
std::cout << "String without spaces: " << result << "\n";
return 0;
}
```
在这个例子中,`is_space`函数检查输入字符是否为空格,如果不是,则将其添加到`output`中。最后返回的是一个没有空格的新字符串。
阅读全文