浅谈EVC中文字符串操作

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
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写应用程序时操作中文字符串的一些积累,以文记之,以备不时之需。
strcpy、wcscpy与_tcscpy 4.5.4  strcpy、wcscpy与_tcscpyC++标准库函数提供了字符和字符串操作函数,并提供了其UNICODE版本,如:char *strcpy(char *strDestination, const char *strSource);  wchar_t *wcscpy(wchar_t *strDestination, const wchar_t *strSource);  阅读详情

相关推荐

C标准库源码解剖(5):字符串处理函数string.h和wchar.h(续)

    3、字符串复制strcpy,strncpy,wcscpy,wcsncpy:将字符串src(或其前n个字符)复制到dest中,覆盖dest的内容。实现中先检查指针是否越界,计算指针dest到src的偏移,然后开始做复制操作,复制到dest的开始位置处,以覆盖dest的内容。对strncpy,也采用了每4个字符作为一组来进行复制的方法,以加快复制速度。/* strcpy.c:strcpy函

Jack Zhou的专栏 2864

C++字符类型总结区别wchar_t,char,WCHAR

转至:http://www.360doc.com/content/12/0807/01/9290626_228750141.shtml 1.区别wchar_t,char,WCHAR ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。   UNICODE:wchar_t是Unicode字符的数据类型,它实际定义在里:   typedef unsigned short wchar_t;   另外,在头文件中有这样的定义:typedef

aoxin的博客 928

C++拷贝wstring到wchar_t*中踩的坑

使用wchar_t指针将wstring中的数据拿出来,发现释放的时候异常

weixin_43891802的博客 1253

wchar_t相关函数

wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式。wchar_t类型主要用在国际化程序的实现中,但它不等同于Unicode编码。Unicode编码的字符一般以wchar_t类型存储。char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。函数介绍:wcslen()   类似与char*类型作参数的strlen()函数    ...

六碗铁biu_ 的博客 1771

EVC下UNICODE的字符串的输出问题

在开发PDA的测图系统中,EVC下的字符串的输出问题困扰了我好几天,在查阅网上相当一部分资料后,总算找到了个解决之道,但今天发现中文字符串却又出现问题,研究了一个下午,弄出了一个比较笨的方法,虽然效率不算高,但目前本人只能想到这样了。 以下是从网上摘抄资料EVC在某种意义上说,相当于VC的一个子集。因为大多EVC有的功能,VC也具备,而VC有的功能,EVC则不一定拥有。在VC中,操作字符串很方便,

sinian5761的专栏 785

evc vc字符串转换处理一:(绝对精华,收集所有的例子)

1.头文件中要定义宏;         #define   UNICODE         #define   _UNICODE     ////////////////////char   buf[128];     memset(buf,0,128);     strcpy(buf,"你好");     WCHAR   pCName[128];     memset(pCName,0,12

scollins的专栏 1121

about CString of EVC(just like Win98)

EVC在某种意义上说,相当于VC的一个子集。因为大多EVC有的功能,VC也具备,而VC有的功能,EVC则不一定拥有。在VC中,操作字符串很方便,因为WINDOWS的字处理能力实在是很强大,它支持多种字符集。我们随便使用一个CString str=“你好”,就要以输入我们想要的中文字符串。在EVC中这种情况有所改变,因为WINCE的字处理能力不够强大,它在处理汉字里统一将它示为UNICODE编码,所

SEAMAN'S NOTES 985

关于字符串

EVC + WINCE平台,用CFile类的成员函数Write往.txt文件中入数字或者字母都没有问题,而如果入汉字,则.txt文件在Windows系统中用记事本程序打开,数字与字幕显示正确,而汉字则显示为乱码。对于上述现象,后来改用标准的C运行库函数fopen、fwrite等进行文件操作就解决了,但是个中缘由不深了了。 现在结合网上的一些资料,对字符串操作进行一个简要的总结,

dafeng008的专栏 802

EVC数据转换处理及其他

对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:                              LPARAM lParam;                              WORD loValue = LOWORD(lParam);     //取低16位                        

脑袋不好使 658

关于EVC[转]

闻香止步 淘宝店 饰品 *木雕系列*:檀木、黄杨木、桃木发簪 樟木壁挂 佛珠http://shop36570193.taobao.com朋友,有空来看看,喜欢的朋友请收藏要编和系统底层有关的程序,就必须先了解Windows CE的特征,建议你先学习《Windows 核心编程》,然后再看看Windows CE的帮助文档,了解CE的操作系统特征。为什么这么建议呢,如果不熟悉Windows

dengjiang1999的专栏 2373

.LPCTSTR,WCHAR,WCHAR_T,strcpy,wcscpy,字符串的问题(转)

EVC在某种意义上说,相当于VC的一个子集。因为大多EVC有的功能,VC也具备,而VC有的功能,EVC则不一定拥有。在VC中,操作字符串很方便,因为WINDOWS的字处理能力实在是很强大,它支持多种字符集。我们随便使用一个CString str=“你好”,就要以输入我们想要的中文字符串。在EVC中这种情况有所改变,因为WINCE的字处理能力不够强大,它在处理汉字里统一将它示为UNICODE编码,所

wuling129的专栏 2357

evc vc字符串转换处理

1.头文件中要定义宏;#define UNICODE #define _UNICODE //////////////////// char buf[128]; memset(buf, 0, 128); strcpy(buf, "你好"); WCHAR pCName[128]; memset(pCName, 0,1 28); MultiByteT...

weixin_30925411的博客 195

EVC技巧

1   为对话框添加菜单,。变量须设置为全局     //先创建一个Command_Bar      HWND hwndCB = CommandBar_Create (AfxGetInstanceHandle(), m_hWnd, 1);     ///再插入菜单:      CommandBar_InsertMenubar (hwndCB, AfxGetInstanceHandle(),

lgb571的专栏 1923

evc小项目杂记

最近要做一个wince5.0的小程序,使用evc4.0工具,jilu

echojiangyq的专栏 1244

vc字符串转换处理

1.头文件中要定义宏;#define UNICODE #define _UNICODE ////////////////////char buf[128]; memset(buf, 0, 128); strcpy(buf, "你好"); WCHAR pCName[128]; memset(pCName, 0,1 28); MultiB

wyymaomi的专栏 1057

vc字符串转换处理:(绝对精华,收集所有的例子)

 1.头文件中要定义宏;         #define   UNICODE          #define   _UNICODE      //////////////////// char   buf[128];     memset(buf,0,128);      strcpy(buf,"你好");      WCHAR   pCName[128];   

zhulianhai0927的专栏 591
上一篇: 用VC实现自定义LISTBOX控件
下一篇: QT截取屏幕的实现.
小毅
博客等级 码龄22年 34粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值