std::string 实现删除字符串中首尾空白
时间: 2023-06-12 09:08:01 浏览: 162
下面是一个实现删除字符串中首尾空白的示例代码:
```
#include <iostream>
#include <string>
std::string trim(const std::string& str) {
size_t start = str.find_first_not_of(" \t\n\r");
size_t end = str.find_last_not_of(" \t\n\r");
if (start == std::string::npos || end == std::string::npos) {
return "";
}
return str.substr(start, end - start + 1);
}
int main() {
std::string str = " \t Hello, World! \n\r ";
std::cout << "[" << str << "]" << std::endl;
std::cout << "[" << trim(str) << "]" << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个 `trim` 函数,它接受一个 `std::string` 类型的参数 `str`,并返回一个新的字符串,该字符串是 `str` 去除首尾空白后的结果。
在 `trim` 函数中,我们首先使用 `find_first_not_of` 函数来查找 `str` 中第一个不是空白字符的位置,然后使用 `find_last_not_of` 函数来查找 `str` 中最后一个不是空白字符的位置。如果找不到这样的位置,说明字符串全部都是空白字符,直接返回空字符串。
最后,我们使用 `substr` 函数从 `str` 中截取去除首尾空白后的子串,并返回该子串作为结果。
阅读全文