ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

qt-C++笔记之std::tostring()、.toStdString()、.toLocal8Bit().constData()的使用场景

2026/8/2 0:23:30 拓冰建站 浏览量
qt-C++笔记之std::tostring()、.toStdString()、.toLocal8Bit().constData()的使用场景

qt-C++笔记之std::tostring()、.toStdString()、.toLocal8Bit().constData()的使用场景

参考博文:C++笔记之system()用于在Qt中执行系统命令的习惯

code review!

注:之所以记录该笔记,是因为在Qt中自己经常使用C语言的int system( const char *command );去执行系统命令,而原始命令字符串的拼接过程中往往混杂着QString和std::string。

std::to_string()toStdString().toLocal8Bit().constData()是在不同情况下使用的字符串转换方法,具有不同的用途和适用场景。

  1. std::to_string()

    • 使用场景:将基本数据类型(如整数、浮点数等)转换为字符串。

    • 适用类型:整数、浮点数等基本数据类型。

    • 示例:

      #include <string>int main() {int num = 42;std::string str = std::to_string(num);// 使用转换后的字符串// ...return 0;
      }
      
  2. toStdString()

    • 使用场景:将QString对象转换为std::string对象。

    • 适用类型:QString对象。

    • 示例:

      #include <QString>
      #include <string>int main() {QString qstr = "Hello, world!";std::string str = qstr.toStdString();// 使用转换后的 std::string// ...return 0;
      }
      
  3. .toLocal8Bit().constData()

    • 使用场景:将QString对象转换为const char*指针,用于与接受C风格字符串参数的函数进行交互。

    • 适用类型:QString对象。

    • 示例:

      #include <QString>int main() {QString qstr = "Hello, world!";const char* cstr = qstr.toLocal8Bit().constData();// 使用转换后的 const char* 字符串// ...return 0;
      }
      

在使用这些方法时,请确保包含了相应的头文件,如<string><QString>。此外,要注意在使用.toLocal8Bit().constData()时,确保QString的生命周期足够长,以避免悬空指针问题。

在这里插入图片描述