在我的应用程序中,我使用 QByteArray
将二进制数据从文件读取到具有固定大小的字节记录。实际上所有这些记录都是字符串。如果字符串大小小于记录大小,则其余字节用\0 填充。有时记录也可以以\0 开头。
例如,我需要做什么:
之前
\0 \0 \0 T h e \32 s t r i n g \0 \0 \0
之后
T h e \32 s t r i n g
所以我的问题 - 如何从所有\0 中清理 QByteArray
?
最佳答案
我测试了这段代码,由于 QByteArray & QByteArray::replace(...)
函数,它似乎可以正常工作。
QByteArray array;
array[0] = '\0';
array[1] = 'a';
array[2] = '\0';
array[3] = 'b';
array[4] = '\0';
qDebug() << "string:" << QString(array.toHex());
array.replace('\0',"");
qDebug() << "string:" << QString(array.toHex());
输出:
string: "0061006200"
string: "6162"
关于string - 清理 QByteArray from\0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952374/