从\ 0清理QByteArray

时间:2014-07-25 09:27:05

标签: string qt bytearray

在我的应用程序中,我使用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

1 个答案:

答案 0 :(得分:2)

我测试了这段代码,感谢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"