qt-C++笔记之std::tostring()、.toStdString()、.toLocal8Bit().constData()的使用场景
2023-12-15 04:48:42
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()
是在不同情况下使用的字符串转换方法,具有不同的用途和适用场景。
-
std::to_string()
:-
使用场景:将基本数据类型(如整数、浮点数等)转换为字符串。
-
适用类型:整数、浮点数等基本数据类型。
-
示例:
#include <string> int main() { int num = 42; std::string str = std::to_string(num); // 使用转换后的字符串 // ... return 0; }
-
-
toStdString()
:-
使用场景:将
QString
对象转换为std::string
对象。 -
适用类型:
QString
对象。 -
示例:
#include <QString> #include <string> int main() { QString qstr = "Hello, world!"; std::string str = qstr.toStdString(); // 使用转换后的 std::string // ... return 0; }
-
-
.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
的生命周期足够长,以避免悬空指针问题。
文章来源:https://blog.csdn.net/weixin_43297891/article/details/135007127
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!