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 ...
随机推荐
- 【数据库】8.0 MySQL入门学习(八)——创建并使用数据库、获得数据库和表的信息
1.0 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 每台机器上的数据库列表是不同的,但是很可能有mysql和test数据库.mysql是必需的 ...
- css3制作有动画效果的面板
.show-panel .slide-panels{ right: 0px; } .slide-panels{ z-index: 101; background: #fff; position: fi ...
- Android实现双进程守护
做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看看这些办法是 ...
- 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API
使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...
- 生成对抗式网络 GAN的理解
转自:https://zhuanlan.zhihu.com/p/24767059,感谢分享 生成式对抗网络(GAN)是近年来大热的深度学习模型.最近正好有空看了这方面的一些论文,跑了一个GAN的代码, ...
- 浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用
简介 日志的作用是保证持久性和数据一致性,通过日志可以实现数据的Undo与Redo,因此通过日志,SQL Server不仅仅可以实现灾难恢复,还可以通过日志的Redo来实现高可用性.本篇文章主要讲述日 ...
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
- ORACLE_LPAD_FUNCTION
Oracle / PLSQL: LPAD Function This Oracle tutorial explains how to use the Oracle/PLSQL LPAD functio ...
- ABAP git客户端
Jerry习惯把自己写的小程序放到自己的github上:https://github.com/i042416 对于写的ABAP程序,需要先把SAPGUI里的代码手动拷贝到本地,然后用git客户端pus ...
- python入门4 python查看数据类型及类型转换
查看数据类型:type() 类型转换:int(),float(),char(),ord(),str(),bool() #coding:utf-8 #/usr/bin/python "&quo ...