c++ std20 字符串 去掉空格
时间: 2024-09-07 11:02:26 浏览: 38
在C++20标准库中,你可以使用`std::remove_if()`函数结合`std::isspace()`来去掉字符串中的所有空格。`std::isspace()`是一个字符分类函数,如果输入的是空白字符(包括空格、制表符、换行符等),它会返回`true`。下面是一个简单的示例:
```cpp
#include <string>
#include <algorithm>
#include <cctype>
std::string remove_spaces(const std::string& str) {
str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end());
return str;
}
int main() {
std::string original_str = "Hello World with spaces";
std::string result = remove_spaces(original_str);
std::cout << "Original string: " << original_str << "\n";
std::cout << "String without spaces: " << result << "\n";
return 0;
}
```
在这个例子中,`std::remove_if()`找到所有的空格字符并从原始字符串中移除它们,最后返回处理后的字符串。
相关问题
c++字符串去掉首尾空格
在 C++ 中,你可以使用 `std::string` 类型提供的 `erase()` 和 `find()` 函数来去除字符串首尾的空格。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string removeSpacesAt Ends(const std::string& str) {
// 查找第一个非空字符的位置,如果没有则返回字符串长度
size_t start = str.find_first_not_of(" ");
// 查找最后一个非空字符的位置,如果没有则返回0
size_t end = str.rfind_last_not_of(" ");
// 如果找不到非空字符,则字符串全为空格
if (start == std::string::npos || end == std::string::npos)
return "";
// 使用截取操作符将首尾空格去掉,并返回新的字符串
return str.substr(start, end - start + 1); // +1是因为要包含结束位置的字符
}
int main() {
std::string str = " Hello, World! ";
str = removeSpacesAt Ends(str);
std::cout << "Original: " << str << std::endl; // 输出 "Hello, World!"
return 0;
}
```
c++输入字符串带空格
在C++中,如果你想从用户那里输入一个字符串,包括空格,可以使用标准库中的`std::getline`函数。这个函数比直接用`std::cin`更方便,因为它会在遇到换行符(`\n`)时停止读取,并将读取到的内容作为一个字符串返回。
以下是一个简单的例子:
```cpp
#include <iostream>
#include <string>
int main() {
std::string input;
std::cout << "请输入一个字符串(包括空格): ";
std::getline(std::cin, input);
std::cout << "你输入的字符串是: " << input << std::endl;
return 0;
}
```
在这个代码片段中,`std::getline`会等待用户的输入,直到用户按下回车键或输入了换行符。然后,输入的内容会被存储在`input`变量中。