📜  从字符串到 qstring (1)

📅  最后修改于: 2023-12-03 15:21:57.369000             🧑  作者: Mango

从字符串到 QString

在程序开发中,经常需要处理字符串。而在 Qt 中,QString 是一个强大的字符串类,已经被广泛使用。

字符串和 QString 的区别

字符串通常指的是 C 语言中的 char 数组,而 QString 是 Qt 中的字符串类。两者的不同主要在于以下几个方面:

  • 字符串是以 ASCII 码的形式存储,而 QString 可以存储 Unicode 字符。
  • 字符串需要手动管理内存,而 QString 自动管理内存。
  • 字符串中的字符需要用 '\0' 来表示结尾,而 QString 没有长度限制,可以任意添加字符。

综上,QString 相比字符串更加易于使用,也更加安全。

创建 QString

在 Qt 中,可以用以下方式创建 QString 对象:

QString str1("hello");
QString str2 = "world";
QString str3 = QString("hello") + " world";
转换为 QString

如果需要将字符串类型转换为 QString 类型,则可以使用以下方式:

char str1[] = "hello";
QString qstr1 = QString::fromLocal8Bit(str1);
QString qstr2 = QString::fromUtf8(str1);

如果要将 std::string 转换为 QString,则可以使用以下方式:

std::string str = "hello";
QString qstr = QString::fromStdString(str);

如果要将数字类型转换为 QString,则可以使用以下方式:

int num = 123;
QString qstr = QString::number(num);
QString 与其他类型的转换

如果要将 QString 转换为 char 数组,则可以使用以下方式:

QString qstr = "hello";
QByteArray ba = qstr.toLocal8Bit();
const char* cstr = ba.data();

如果要将 QString 转换为 std::string,则可以使用以下方式:

QString qstr = "hello";
std::string str = qstr.toStdString();

如果要将 QString 转换为数字类型,则可以使用以下方式:

QString qstr = "123";
int num = qstr.toInt();
double doub = qstr.toDouble();
总结

通过以上介绍,我们了解了如何将不同的字符串类型转换为 QString 类型,以及如何将 QString 转换为其他类型。QString 作为 Qt 中的一个核心类,其强大的功能非常便利开发者进行字符串处理,同时更加安全和易于使用。