今天小编给大家分享的是C语言如何解决QString与QByteArray互相转换的问题,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
目录
[1] QString与QByteArray互相转换的方法
QString转QByteArray方法
QByteArray转QString方法
QByteArray类同样不以’ ’为结尾
[2] Qt开发串口通讯软件中的数据转换问题
1.读取串口命令-QByteArray转QString,QString转float
2.向串口写入命令
[3] QT QString与QByteArray的相互转换
[1] QString与QByteArray互相转换的方法
先要说的是QString。
之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结构来实现的。
每一个GUI程序都需要string,这些string可以用在界面上的提示语,也可以用作一般的数据结构。C++语言提供了两种字符串的实现:C风格的 字符串,以’/0‘结尾;std::string,即标准模版库中的类。Qt则提供了自己的字符串实现:QString。QString以16位 Uniode进行编码。我们平常用的ASCII等一些编码集都作为Unicode编码的子集提供。关于编码的问题,我们会到以后的时候再详细说明。
在使用QString的时候,我们不需要担心内存分配以及关于’/0’结尾的这些注意事项。QString会把这些问题解决。通常,你可以把 QString看作是一个QChar的向量。另外,与C风格的字符串不同,QString中间是可以包含’/0’符号的,而length()函数则会返回 整个字符串的长度,而不仅仅是从开始到’/0’的长度。
同Java的String类类似,QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起,正像Java里面的操作一样。QString可以自动的对占用内存空间进行扩充,这种连接操作是恨迅速的。下面是这两个操作符的使用:
QStringstr="User:";
str+=userName+"/n";
QString的append()函数则提供了类似的操作,例如:
str="User:";
str.append(userName);
str.append("/n");
QString转QByteArray方法
//Qt5.3.2
QString str("hello");
QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1
QString str("hello");
QByteArray bytes = str.toLatin1(); // QString转QByteArray方法2
QByteArray转QString方法
//Qt5.3.2
QByteArray bytes("hello world");
QString string = bytes; // QByteArray转QString方法1
QByteArray bytes("hello world");
QString string;
string.prepend(bytes);// QByteArray转QString方法2
qDebug() << string;
QByteArray类同样不以’ ’为结尾
QByteArray bytes;
bytes.resize(5);
bytes[0] = '1';
bytes[1] = '2';
bytes[2] = '3';
bytes[3] = '