stirng、wstring,char和wchar之间的转换

一.ANSI和UNICODE

   2ANSI字符和Unicode字符
   ANSI字符类型为CHAR指向字符串的指针PSTR(LPSTR),指向一个常数字符串的指针PCSTR(LPCSTR)

对应的Windows定义的Unicode字符类型为WCHARtypedef WCHAR wchar_t ,指向Unicode字符串的指针PWSTR ,指向一个常数Unicode字符串的指针PCWSTR 

ANSI “ANSI” 
Unicode 
L“UNICODE” 
ANSI/Unicode
 T(“string”)_TEXT(“string”)

3ANSI字符和Unicode字符串的操作

   双字节(DBCS)字符集中,字符串的每个字符可以包含一个或两个字节。如果只是调用strlen()函数,那么你就无法知道字符串到底有多少个字符,它只能告诉你到达结尾的0之前有多少个字节。

   标准c中的strcpy,strchr,strcat等只能用于ANSI字符串,不能正确处理Unicode字符串,因此也提供了一组补充函数,功能等价,但用于Unicode码。我们来看看string .h字符串头文件中是怎样处理char*和wchar_t*两个字符串版本的:
char *strcat(char*,const char*);
wchar_t *wcschr(wchat_t*,const wchar_t *)
类似的还有strchr/wcschr,strcmp/wcscmp,strlen/wcslen etc.
ANSI 操作函数以str开头 strcpy 
Unicode 
操作函数以wcs开头 wcscpy 
MBCS 
操作函数以_mbs开头 _mbscpy 
ANSI/Unicode 
操作函数以_tcs开头 _tcscpyC运行期库) 
ANSI/Unicode 
操作函数以lstr开头 lstrcpyWindows函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值