QString, Std::string, char *相互转换
Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利。 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) 类型,因此在Qt框架下需要将QString转换成标准字符 (串) 类型。下面介绍QString, Std::string, char *相互转换转换方法。
- std::string和char *的相互转换
1. 将char *或char[]转换为std::string
可直接赋值
std::string ss,str;
const char *y="hello";
const char z[]="hello world";
ss=y;
str=z;
2. 将std::string转换为char *或char[]
有3种方法,推荐第二种方法
1) 尾部不会附加结束符'\0'
std::string str="abc";
char *p=str.data();
2) 尾部附加结束符'\0'
std::string str="Pigman";
char ch[];
strcpy(ch,str.c_str());
3) 尾部不会附加结束符'\0',第二个参数为复制字符个数,第三个为复制位置
std::string str("pig can fly");
char *p;
str.copy(p,,);
*(p+)='\0'; // 手动添加结束符
- QString和std::string相互转换,以及避免出现乱码
QString qstr;
std::string str;
// QString转std::string
str=qstr.toStdString();
str=(const char*)qstr.toLocal8bit(); // 中文字符串避免出现乱码
// std::string转QString
qstr=QString::fromStdString(str);
qstr=QString::fromLocal8bit(str.c_str()); // 中文字符串避免出现乱码
- QString和char *相互转换
1. QString转为char *
有两种方法。
1) 先转为std::string,再转为char *,如上所示
2) 先转为QByteArray,再转为char *
QString ss("Flying without wings");
QByteArray sr=ss.toLocal8Bit();
char ch[];
strcpy(ch,sr.data());
2. char *转为QString
char *ch="westlife";
QString str(ch); // Qt5
QString str = QString::fromUtf8(ch)); // Qt4
QString, Std::string, char *相互转换的更多相关文章
- QString std::string 相互转 含中文
std::string cstr;QString qstring; //QString str1 = " D:\\参考手册\\BIM\\osg\\build1.OSGB"; //从 ...
- C++ wstring string char* wchar_t相互转换
标签: stringwstringwchar_tcharc++2013-12-19 00:29 3721人阅读 评论(0) 收藏 举报本文章已收录于: C++知识库 分类: C/C++(50) 1. ...
- QString 与 string转换
[1]QString 转换为string QString qString("好好学习天天向上"); std::string stdString = qString.toStdStr ...
- C++ MFC std::string转为 std::wstring
std::string转为 std::wstring std::wstring UTF8_To_UTF16(const std::string& source) { unsigned long ...
- QString 和std::string互转
std::string cstr; QString qstring; //****从std::string 到QString qstring = QString(QString::fromLocal8 ...
- 实战c++中的string系列--std:vector 和std:string相互转换(vector to stringstream)
string.vector 互转 string 转 vector vector vcBuf;string stBuf("Hello DaMao!!!");----- ...
- Qt的QString,QByteArray,char *相互转换
1.QString转换为QByteArray QString str = "; QByteArray byte = str.toUtf8(); // 转换为Utf8格式 byte.toLoc ...
- c++之常见数据类型(int,double,float,long double long long 与std::string之间)相互转换(含MFC的CString、含C++11新特性函数)
--- 已经通过初步测试---- ------------------ 下面的是传统常见数据类型的转换(非c++11)--------------- std::string 与其他常用类型相互转换, ...
- std::string stringf(const char* format, ...)
std::string stringf(const char* format, ...){ va_list arg_list; va_start(arg_list, format); // SUSv2 ...
随机推荐
- 关于Activity
Activity与界面 1.Activity相当于浏览器的标签.相当于空白的网页,界面相当于浏览器内的网页. 2.将Activity与界面绑定就相当于在浏览器内填写了相应的网页. 3.Activity ...
- ArcEngine开发鹰眼实现问题
在网上百度一下有关AE鹰眼实现的代码,基本是一样的,可问题是好多代码自己运行起来鹰眼却总是加不进地图.住视图axMapControl1.OnMapReplaced(),axMapControl1.On ...
- setExecuteExistingDelayedTasksAfterShutdownPolicy方法与setContinueExistingPeriodicTasksAfterShutdownPolicy方法的比较
一.setExecuteExistingDelayedTasksAfterShutdownPolicy方法 这个方法大多是与schedule方法和shutdown方法搭配使用的. public voi ...
- MySQL 5.7 修改数据物理文件目录
修改MySQL数据库物理文件存放位置,需要在MySQL配置文件中修改相关参数.安装MySQL5.7后,在MySQL安装目录下没有找到数据库物理文件,最后经过查找发现其在“C:\ProgramData\ ...
- tdf sample
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- ASP.NET中引用dll“找不到指定模块"的完美解决办法 z
DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息.DllImport属性应用于方法,要求最少要 ...
- 【Leetcode】【Easy】Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have you ...
- NO.008-2018.02.13《折桂令·春情》元代:徐再思
折桂令·春情_古诗文网 折桂令·春情 元代:徐再思 平生不会相思,才会相思,便害相思.生下来以后还不会相思,才刚刚懂了什么是相思,却深受着相思之苦. 身似浮云,心如飞絮,气若游丝.身像飘浮的云,心 ...
- JS:jquery插件表格单元格合并.
公司需要用到单元格合并,于是动手封装了一个简单的jquery插件,封装的函数是直接写好转的,请多多提意见看代码是否有优化的地方..... 截图: 代码: /* * mergeTable 0.1 * C ...
- Lucas 大组合数
题目:HDU 3037 题意:有n个树,m个坚果,放到n个树里,可以不放完,有多少种方法. 分析: 得到组合数了. 大组合数什么费马小定理,Lucas定理都来了: 总的说,不能用二维地推了,用的却是组 ...