string 去除空格 c++
时间: 2024-09-24 12:05:33 浏览: 42
在 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 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."。
C++去掉String开头的空格
可以使用trim()函数来去掉String开头的空格,具体代码如下:
String str = " Hello World!";
str = str.trim();
System.out.println(str);
输出结果为:"Hello World!"
阅读全文