【QT】QString类型转换为const char*

Qstring str = "helloworld";
char *s;
QByteArray ba = str.toLatin1();
s = ba.data();

toLatin1、toLocal8Bit都是QString转QByteArray的方法,Latin1代表ASCII,Local8Bit代表unicode。

const char*

指向字符常量的指针

const char * ss= "xxxxxx";    // 这个表示的是指针指向的内容不可修改
char * const ss = "xxxxxx";  // 这个表示这是一个指针常量,再不能指向其他地址,比如ss= ...是不允许的
const char * const ss ="" ;  // 这个就是指针不可修改,指向的内容也不可以修改

【转载自】

QString,const char*,char*相互直接转换方法 - jh1513的博客 - CSDN博客 https://blog.csdn.net/jh1513/article/details/52983434

为什么const char * 的内容是可以更改的?-CSDN论坛 https://bbs.csdn.net/topics/392203056

【其他】

怎样把QString转换为char *或者相反? - qter_wd007的专栏 - CSDN博客 https://blog.csdn.net/qter_wd007/article/details/6011292

原文地址:https://www.cnblogs.com/wxl845235800/p/10796840.html

时间: 2024-07-30 05:40:21

【QT】QString类型转换为const char*的相关文章

CString转换为const char*

CString str=_T("这是我的测试程序.");// 先得到要转换为字符的长度const size_t strsize=(str.GetLength()+1)*2; // 宽字符的长度;char * pstr= new char[strsize]; //分配空间;size_t sz=0;wcstombs_s(&sz,pstr,strsize,str,_TRUNCATE); int n=atoi(const char*)pstr); // 字符串已经由原来的CString

inet_addr”: 不能将参数 1 从“CString”转换为“const char *”1>

[cpp] view plaincopy CString ipaddress; ipaddress = "192.168.39.207"; DWORD m_dwPuIp; m_dwPuIp = inet_addr(ipaddress); 有一个错误:“inet_addr”: 不能将参数 1 从“CString”转换为“const char *”1>没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符. 网上有说用LPCTSTR进行强制转换 [cpp] view pla

error C2664: “FILE *fopen(const char *,const char *)”: 无法将参数 1 从“LPCTSTR”转换为“const char *”

遇到这个问题,请打开本项目的Properties(属性)-------> Configuration Properties(配置属性)-------->General(常规)------->Character Set(字符集)  把Use Unicode Character Set(使用Unicode字符集) 改成使用  Use Multi-byte Character  Set (使用多字节字符集).最后别忘了  应用------>确定.

CString 转化成 const char* 类型

写程序的时候经常会遇到无法将“CString”转换为“const char *”的错误,这里我找到了一个解决办法,与大家分享下: CString cs = _T("123123"); const size_t strSize = (cs.GetLength() + 1) * 2; char *p = new char[strSize]; size_t sz = 0; wcstombs_s(&sz, p, strSize, cs, _TRUNCATE); int n = atoi

const char* to char*(当函数传递参数时)

来自 https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 https://blog.csdn.net/hebbely/article/details/79577880 简述: 1) char*转string:可以直接赋值. 2) char[]转string:可以直接赋值. 3) char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数. 4) string转char[

char*,const char*和string 三者转换

1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua". string s = tmp; (2) string转换为const char*,利用c_str() EX:  string s = "tsinghua"; const char*tmp = s.c_str(); 2. char*和const char*之间的转换 (1) cons

char* 、const char*和string之间的转换

1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua". string s = tmp; (2) string转换为const char*,利用c_str() EX:  string s = "tsinghua"; const char*tmp = s.c_str(); 2. char*和const char*之间的转换 (1) cons

理解C/C++中const char*、char* const、const char* const、char* const*等等

先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb", "cc" }; 也就是在char前面加个const,因为"aaa"."bbb"."cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const char*,原因是即使

Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();

Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString::number(a, 10); // s == "63" QString t = QString::number(a, 16).toUpper(); // t == "3F" long a = 63; QString s = QString::number(a, 10);