📅  最后修改于: 2023-12-03 14:53:02.481000             🧑  作者: Mango
在 Qt 中,我们经常需要将 QString 转换为标准的 C++ 字符串进行处理,例如使用 STL 中的字符串函数等,下面介绍几种简单的方法。
toStdString() 可以将 QString 转换为标准的 C++ 字符串。
QString str = "Hello World";
std::string stdstr = str.toStdString();
如果需要将 QString 转换为 UTF-8 编码的 C++ 字符串,可以使用 toUtf8()。
QString str = "你好,世界";
std::string utf8str = str.toUtf8().constData();
需要注意的是,toUtf8() 返回的是 QByteArray 类型,需要使用 constData() 函数将其转换为 char* 类型。
如果需要将 QString 转换为 Latin-1 编码的 C++ 字符串,可以使用 toLatin1()。
QString str = "你好,世界";
std::string latin1str = str.toLatin1().constData();
需要注意的是,toLatin1() 也是返回 QByteArray 类型,需要使用 constData() 函数将其转换为 char* 类型。
如果需要逐个将 QString 中的 QChar 转换为 char,可以使用以下代码:
QString str = "Hello World";
QByteArray qba = str.toUtf8();
std::string stdstr(qba.constData(), qba.length());
需要注意的是,将 QByteArray 转换为 char* 类型时,可以将其数据指针传递给构造函数,同时需要设置字符串长度用于截取正确的字符数。
以上就是将 Qt 字符串转换为 C++ 字符串的常用方法,根据需求选择合适的方法即可。