c++ qt QByteArray按","分隔成QStringList
时间: 2024-10-11 20:06:16 浏览: 34
在C++ Qt中,如果你想将`QByteArray`按照逗号(",")分隔成`QStringList`,你可以这样做:
```cpp
#include <QObject>
#include <QStringList>
#include <QByteArray>
QStringList splitQByteArrayWithComma(const QByteArray& inputArray) {
QStringList result;
const char* input = inputArray.data();
while (*input != '\0') {
size_t pos = input.find(',');
if (pos == std::string::npos) {
// 如果没有找到逗号,意味着字符串结束
result.append(QString(input));
break;
}
result.append(QString::fromStdString(std::string(input, pos))); // 将子串添加到list
input += pos + 1; // 移动到下一个元素开始位置
}
return result;
}
```
这个函数首先创建一个空的`QStringList`,然后遍历输入的`QByteArray`。每当遇到一个逗号,就截取当前位置之前的部分作为新的字符串添加到`QStringList`中,直到遇到字符串结束。
使用示例:
```cpp
QByteArray array = "value1, value2, value3";
QStringList list = splitQByteArrayWithComma(array);
for (const auto& item : list) {
qDebug() << item;
}
```
阅读全文