string 去除空格 c++
时间: 2024-09-24 13:05:33 浏览: 44
在 C++ 中,如果你想从 `string` 对象去除所有空格,你可以使用 `std::remove_if` 和 `std::copy` 这两个标准库函数结合一个自定义的谓词(predicate),这个谓词会检查每个字符是否为空格。以下是简单的示例:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
// 自定义谓词,检查是否为空格
bool is_space(char c) {
return isspace(c);
}
void remove_spaces(std::string& str) {
str.erase(remove_if(str.begin(), str.end(), is_space), str.end());
}
int main() {
std::string input = "Hello World!";
remove_spaces(input);
std::cout << "After removing spaces: " << input << std::endl;
// 相关问题:
相关问题
c++ std::string 去除空格
在C++中,你可以使用`std::string`的成员函数`erase`和`find`来去除字符串中的空格。首先,找到第一个空格的位置,然后删除从那个位置到字符串结束的所有字符。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string removeSpaces(const std::string& str) {
size_t start = 0;
for (size_t i = 0; i < str.size(); ++i) {
if (str[i] != ' ') { // 如果不是空格
str.erase(start, i - start); // 从start开始删除之前的空格
start = i + 1; // 更新新的起始位置
}
}
str.erase(start, str.size() - start); // 删除最后的剩余空格
return str;
}
int main() {
std::string s = "Hello World with spaces";
std::cout << "Original string: " << s << "\n";
std::string result = removeSpaces(s);
std::cout << "String without spaces: " << result << "\n";
return 0;
}
```
运行上述代码,你会得到没有空格的字符串。
c string去除空格
在C++中,如果你想要从`std::string`对象中移除所有的空格,可以使用`erase()`和`find()`方法结合来实现。首先,你可以找到第一个非空格字符的位置,然后清除开头到这个位置的所有空格。接着,继续查找最后一个非空格字符并删除其后面的空格。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string removeSpaces(const std::string &str) {
if (str.empty()) return str; // 如果字符串为空直接返回
size_t start = 0;
for (size_t i = 0; i < str.length(); ++i) {
if (str[i] != ' ') { // 遇到非空格字符
str.erase(0, start); // 移除前导空格
str.insert(i, 1, str[start]); // 将非空格字符放回原位
start = i + 1; // 更新起始位置
}
}
if (start < str.length()) str.erase(start, str.length()); // 删除末尾多余的空格
return str;
}
int main() {
std::string input = "Hello World! This is a test.";
std::cout << "Original: " << input << std::endl;
std::string result = removeSpaces(input);
std::cout << "Without spaces: " << result << std::endl;
return 0;
}
```
当你运行这个程序,你会看到原始字符串"Hello World! This is a test."变为"HelloWorld!Thisisatest."。
阅读全文