一.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;
}
运行结果:
二.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;
}
运行结果:
这里我电脑显示得不对,环境配置问题。正常应该是"中"
三.转换问题
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;
}
运行结果:
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;
}
运行结果:
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;
}
运行结果:
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;
}
运行结果: