C语言如何解决QString与QByteArray互相转换的问题

寻技术 C/C++编程 2023年09月24日 111

今天小编给大家分享的是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类同样不以&rsquo; &rsquo;为结尾

    QByteArray bytes;  
    bytes.resize(5);  
    bytes[0] = '1';  
    bytes[1] = '2';  
    bytes[2] = '3';  
    bytes[3] = '
    关闭

    用微信“扫一扫”