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();


你可能感兴趣的:(CString 妙用)