浅谈EVC中文字符串操作

类别:软件工程 点击:0 评论:0 推荐:
EVC在某种意义上说,相当于VC的一个子集。因为大多EVC有的功能,VC也具备,而VC有的功能,EVC则不一定拥有。在VC中,操作字符串很方便,因为WINDOWS的字处理能力实在是很强大,它支持多种字符集。我们随便使用一个CString str=“你好”,就要以输入我们想要的中文字符串。在EVC中这种情况有所改变,因为WINCE的字处理能力不够强大,它在处理汉字里统一将它示为UNICODE编码,所以我们在EVC中片理中文字符串时需要用到UNICODE编码。下面结合WINDOWS 下VC字符串的处理,对比一下EVC中文字符串的片理方法。

一、中文字符串定义
1、在VC中我们如果定义一个中文字符串,可以使用CString str=“你好”或LPCTSTR  str=“你好”。
2、在EVC中我们如果想定义一个中文字符串,可以使用如下方法:CString str=_T(“你好”)或者LPCTSTR  str=“你好”,这里LPCTSTR在EVC里就是表示UNICODE字符串。值得注意的是_T()宏中,括号中只能填写常量,不能填定变量。
二、字符串操作
1、在VC中我们想拷贝字符串,可以作如下操作:
      char s[20];
      CString str=“你好”;
      strcpy(s,str);
      在EVC中则不能这样做,首先定义中文数组应该用双字节指针wchar_t,而拷贝函数也不能用strcpy,而应该用:wchar_t * wcscpy(wchar_t * wDest,wchar_t wSource);函数,操作如下:
      wchar_t s[20];
      CString str=“你好”;
      wcscpy(s,(LPCTSTR)str); //前面没有转成UNICODE编码,所以这里需要强制转换
2、在VC中我们想在一个字符串中查找某个子串,只需要作下面的操作:
       CString str=“你是一个好学生”;
       str.Find(“学生”);
       在EVC中不能这样做,因为中文字符串为UNICODE编码,我们必需在查找函数的参数里作如下修改:
       str.Find(_T(“学生”));

以上是我在用EVC写应用程序时操作中文字符串的一些积累,以文记之,以备不时之需。

本文地址:http://com.8s8s.com/it/it32968.htm