string - 清理 QByteArray from\0

标签 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

最佳答案

我测试了这段代码,由于 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/

相关文章:

c++ - 执行 C++ 中存储为字符串的函数

qt - 在 qt 图表中移动

c++ - 保存和加载非纯文本的文本文件

flash - 录音开始时AS3的喀哒声

actionscript-3 - flash as3 如何删除字节数组的一部分?

string - 一系列字符串的最长公共(public)子序列

java - 如何使用 java netbeans 更新 MS Access 表中的特定行?

c++ - 如何用常量字符替换字符串的子字符串,如 'X'

wpf - Qt QML 组件,如 WPF HwndHost

vb.net - 如何使用Dapper和sqlite插入语句保存字节数组