博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC中char*,string和CString之间的转换
阅读量:4109 次
发布时间:2019-05-25

本文共 1645 字,大约阅读时间需要 5 分钟。

一、    将CString类转换成char*(LPSTR)类型

方法一,使用强制转换。例如: 
CString theString( "This  is a test" ); 
LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString; 
方法二,使用strcpy。例如: 
CString theString( "This  is a test" ); 
LPTSTR lpsz = new TCHAR[theString.GetLength()+1]; 
_tcscpy(lpsz, theString); 
方法三,使用CString::GetBuffer。例如: 
CString s(_T("This is a  test ")); 
LPTSTR p = s.GetBuffer(); 
// 在这里添加使用p的代码 
if(p != NULL) *p =  _T('\0'); 
s.ReleaseBuffer(); 
// 使用完后及时释放,以便能使用其它的CString成员函数

CString str = "ABCDEF"; 
char *pBuf = str,GetBuffer( 0 ); 
str.ReleaseBuffer();

二、     string转char*

string 是c++标准库里面其中一个,封装了对字符串的操作
把string转换为char* 有3种方法:
1。data(),返回没有”\0“的字符串数组 
如:
string str="abc";
char  *p=str.data();
2.c_str 返回有”\0“的字符串数组 
如:string  str="gdfd";
    char *p=str.c_str();
3 copy
比如
string  str="hello";
char p[40];
str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置
*(p+5)='\0';  //要手动加上结束符
cout < < p;

三、     字符串string转换为其它数据类型

temp="123456";
1)短整型(int)
i =  atoi(temp);
2)长整型(long)
l =  atol(temp);
3)浮点(double)
d =  atof(temp);
string s; d= atof(s.c_str());
4)BSTR变量
BSTR bstrValue =  ::SysAllocString(L"程序员");
...///完成对bstrValue的使用
SysFreeString(bstrValue);
5)CComBSTR变量
CComBSTR类型变量可以直接赋值
CComBSTR  bstrVar1("test");
CComBSTR bstrVar2(temp);
6)_bstr_t变量
_bstr_t类型的变量可以直接赋值
_bstr_t  bstrVar1("test");
_bstr_t bstrVar2(temp);

四、     Char*转换为string

如果要把一个char 转换成string, 可以使用 string s(char  *); 

五、string 转CString  
CString.format("%s",  string.c_str()); 

六、char 转CString  
CString.format("%s", char*); 

七、     CString -> string 

string  s(CString.GetBuffer());  
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

八、CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。  
而将数字转换为CString变量,可以使用CString的Format函数。如  
CString s;  
int i =  64;  
s.Format("%d", i) 

转载地址:http://czlsi.baihongyu.com/

你可能感兴趣的文章
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(五):OpenFeign请求结果处理及重试控制
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
OpenFeign学习(七):Spring Cloud OpenFeign的使用
查看>>
Ribbon 学习(二):Spring Cloud Ribbon 加载配置原理
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(一):DOM生成XML
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
查找最大值最小值
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>