码迷,mamicode.com
首页 > 其他好文 > 详细

CString,char之间的转换

时间:2015-05-27 15:38:32      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

1.char字符串转换为CString字符串

  这个在MFC编程里尤其常见,各种控件显示的内容都是要求CString类型的,网上也有很多方法,但是实际上会遇到各种各样的问题,我当初折腾了好久,耗费了我许久精力终于成功,代码如下,下面的代码是可以应付绝大部分情况的:

  char cstr[256] = "you can input other string";

  CString res;

  res.Empty();

  res.Format(_T("%s"), CStringW(cstr));

  这样就行了,显示出来的结果是正确的,即使char字符串是中文字符串也行,所以这边不需要用wchar类型的字符串来表示中文,事实上,VS里面编程的时候基本不需要特地使用wchar类型,基本上不会用到,因为char类型也能应付大部分中文字符了。

  CString字符串的方法Format的参数类似于sprintf,但是格式化字符串参数要以_T(“%s”)的形式,当然也可以这样_T("这样也可以哦!字符串%s,整数%d等等"),然后是后面的参数,如果是字符串,则一定要加上CStringW(),一定要加上!虽然有时候不加上也能正确显示,但是这不是通用的,有些时候是行不通的,但是加上之后就能应付绝大多数情况了,这是我的惨痛教训之一。

2.CString字符串转换为char字符串

  MFC里也尤其常见,我们获得的控件里的内容都是CString类型的,但是这种类型处理起来不太方便,而且也不太熟悉,所以要转换成大家比较熟悉的char字符串类型。具体代码如下:

  char filename[256];

  CString tmp = _T("C:\\log.txt");

  USES_CONVERSION;  //在同一个函数里这条语句只要写一次就行,但是一定要写!

  LPTSTR p = T2A(tmp);

  ZeroMemory(filename,  sizeof(filename));

  memcpy(filename, p, strlen(p)+1);

  接下来就可以使用filename了,虽然没有网上那些方法方便,但是还是那句话,这个代码可以应付绝大多数情况了。

 

CString,char之间的转换

标签:

原文地址:http://www.cnblogs.com/lixiangblog/p/4528929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!