CString 妙用

在VC中CString是常用的字符串处理类:

1:通过GetBuffer(0)可以轻松获取字符串指针;

2:CString是一种自适应的字符串,在非UNICODE中,它是ANSI字符串char*,在UNICODE中它是wchar_t*(当然是通过GetBuffer获取指针);

3:在UNICODE工程中,通常将 char* 字符串转为UNICODE字符串wchar_t*时,可以有多重方法,最简单的就是A2W,这里我们可以用CString完成,

    如: char * pch = "ansi字符串"; 

           CString str(pch);

          wchar_t * pwch = str.GetBuffer(0); //或者: wchar_t * pwch = str.GetBuffer(str.GetLength() );

           

4:在UNICODE中,CString 如何转换为ANSI字符串;

      当然可以通过W2A等宏实现,也可以通过C语言的转换函数,但是在MFC中,可以用更简单的方法;


      在UNICODE中,CString 通过GetBuffer(0)函数或取得是wchar_t * 字符串,而不是char *,转换方法:

      CString   strUnicode;

      CStringA strAnsi(  strUnicode );

   

     char * pstrAnsi = strAnsi.GetBuffer(0);

     strAnsi.RealeaseBuffer();


5:在Unicode 工程中,获取字符串长度;


CString str(“12345”);


str.GetLenght() == 5;


但是,中文的话:

CString str(“中文”);


str.GetLenght() == 2; //返回结果是2; 但是实际上,一个中文站两个字节; 但是在多字节工程中返回正确结果;


要想获取正确结果,需要转换为多字节,这里讲用复杂的函数,用CString解决;

方法:

CString str(“中文”);


CStringA strA( str ); //转换多字节;


strA.GetLength();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chinabinlang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值