Qt中怎样分割以'\r\n'或'\n'间隔的字符串"18\r\n\r\n\r\n19",要求如果有多个空行时不会被忽略掉,使用c++实现
时间: 2023-07-06 13:27:12 浏览: 145
在Qt中,你可以使用QString的`split()`方法来分割以`\r\n`或`\n`间隔的字符串。具体实现如下:
```c++
#include <QString>
#include <QDebug>
#include <vector>
int main() {
QString s = "18\r\n\r\n\r\n19";
QStringList lines = s.split(QRegExp("\r\n|\n"));
// 将QStringList转换为vector<string>
std::vector<std::string> vec;
for (int i = 0; i < lines.size(); ++i) {
vec.push_back(lines[i].toStdString());
}
// 输出vector中的内容
for (auto it = vec.begin(); it != vec.end(); ++it) {
qDebug() << QString::fromStdString(*it);
}
return 0;
}
```
这里使用了`QString`的`split()`方法来分割字符串,并将其存储到一个`QStringList`中。然后将`QStringList`转换为`std::vector<std::string>`,最后遍历输出vector中的内容。
注意,这里使用了正则表达式`\r\n|\n`来匹配换行符。如果有多个空行,也会被正确地分割并保留。
阅读全文