c++ 去掉一个长字符串得所有换行符,重新拼接为一个长字符串
时间: 2024-09-06 07:06:38 浏览: 82
在 C++ 中,如果你有一个包含换行符('\n')的长字符串,并希望移除所有的换行符并将其重新组合成一个新的字符串,你可以使用 `std::string` 的 `erase` 和 `replace` 函数,或者直接使用 `std::stringstream`。以下是两种方法:
方法一:使用 `erase` 和 `replace`
```cpp
#include <string>
#include <algorithm>
std::string remove_newlines(const std::string& str) {
// 使用 find 和 erase 清除所有 '\n'
auto newline_pos = str.find('\n');
while (newline_pos != std::string::npos) {
str.erase(newline_pos, 1); // 删除一个字符 '\n'
newline_pos = str.find('\n'); // 继续查找下一个位置
}
return str;
}
```
方法二:使用 `std::stringstream`
```cpp
#include <sstream>
#include <string>
std::string remove_newlines(const std::string& str) {
std::stringstream ss(str);
std::string new_str;
new_str << ss.rdbuf(); // 直接读取流到新的字符串中,自动去除换行
return new_str;
}
```
阅读全文