📜  如何将 qt 字符串转换为字符串 - C++ (1)

📅  最后修改于: 2023-12-03 14:53:02.481000             🧑  作者: Mango

如何将 qt 字符串转换为字符串 - C++

在 Qt 中,我们经常需要将 QString 转换为标准的 C++ 字符串进行处理,例如使用 STL 中的字符串函数等,下面介绍几种简单的方法。

1. toStdString()

toStdString() 可以将 QString 转换为标准的 C++ 字符串。

QString str = "Hello World";
std::string stdstr = str.toStdString();
2. toUtf8()

如果需要将 QString 转换为 UTF-8 编码的 C++ 字符串,可以使用 toUtf8()。

QString str = "你好,世界";
std::string utf8str = str.toUtf8().constData();

需要注意的是,toUtf8() 返回的是 QByteArray 类型,需要使用 constData() 函数将其转换为 char* 类型。

3. toLatin1()

如果需要将 QString 转换为 Latin-1 编码的 C++ 字符串,可以使用 toLatin1()。

QString str = "你好,世界";
std::string latin1str = str.toLatin1().constData();

需要注意的是,toLatin1() 也是返回 QByteArray 类型,需要使用 constData() 函数将其转换为 char* 类型。

4. QChar 数组转换

如果需要逐个将 QString 中的 QChar 转换为 char,可以使用以下代码:

QString str = "Hello World";
QByteArray qba = str.toUtf8();
std::string stdstr(qba.constData(), qba.length());

需要注意的是,将 QByteArray 转换为 char* 类型时,可以将其数据指针传递给构造函数,同时需要设置字符串长度用于截取正确的字符数。

总结

以上就是将 Qt 字符串转换为 C++ 字符串的常用方法,根据需求选择合适的方法即可。