QT每日一练day17:QString和QByteArray

一.QString

day17.pro

SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    int age=13;
    bool sex=true;
    QString name("xiaoming");
    QString str;

    str=QString("age %1 sex %2 name %3").arg(age).arg(sex).arg(name);
    qDebug()<<str<<endl;
    str=QString::asprintf("age %d name %s",age,name.toLatin1().data());
    qDebug()<<str<<endl;
    str.append(name);
    qDebug()<<str<<endl;
}

运行结果:
QT每日一练day17:QString和QByteArray

二.QByteArray

day17.pro

QT+=core
SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    QByteArray byte("中");
    QString str("中");
    qDebug()<<byte<<str<<endl;
    
    //实现一个功能,将“\xE4\xB8\xAD”转换成“E4B8AD”
    qDebug()<<byte.toHex()<<endl;
    qDebug()<<QByteArray::fromHex("e4b8ad")<<endl;
    qDebug()<<byte.data()<<endl;
    
    return 0;
}

运行结果:
QT每日一练day17:QString和QByteArray
这里我电脑显示得不对,环境配置问题。正常应该是"中"

三.转换问题

1.QString 转 QByteArray

day17.pro

QT+=core
SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    //QString 转 QByteArray
    QString str("123中");
    QByteArray byte=str.toUtf8();
    qDebug()<<byte<<endl;
    return 0;
}

运行结果:
QT每日一练day17:QString和QByteArray

2.QByteArray 转 QString

day17.pro

QT+=core
SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    //QByteArray 转 QString
    QByteArray byte="\x31\x32\x33";
    QString str(byte);
    qDebug()<<str<<endl;
    return 0;
}

运行结果:
QT每日一练day17:QString和QByteArray

3.QByteArray 转 char*

day17.pro

QT+=core
SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    //QByteArray 转 char*
    QByteArray byte="\x31\x32\x33";
    qDebug()<<byte.data()<<endl;
    return 0;
}

运行结果:
QT每日一练day17:QString和QByteArray

4.QString 转 char*,不能直接转,要先转成QByteArray,然后再转char

day17.pro

QT+=core
SOURCES += \
    main.cpp

main.cpp

#include<QString>
#include<QDebug>
#include<QByteArray>
int main()
{
    //QString 转 char*,不能直接转,要先转成QByteArray,然后再转char
    QByteArray byte="\x31\x32\x33";
    QString str(byte);
    qDebug()<<str.toLatin1().data()<<endl;
    return 0;
}

运行结果:
QT每日一练day17:QString和QByteArray

四.附:概念

QT每日一练day17:QString和QByteArray
QT每日一练day17:QString和QByteArray
QT每日一练day17:QString和QByteArray
QT每日一练day17:QString和QByteArray

上一篇:QDebug使用技巧


下一篇:QT常用模块