C++字符串相关整理

之前转过一篇文章,讲述了C++字符中多种类型的来源去脉,对字符处理有了一定的了解,但只是业余用C++,不常用,记不大牢,所以今天抽空再整理了一遍,列了一张相关的表格。由于这里对表格排版比较困难,所以做成了图片。

之前转的文章:http://blog.csdn.net/mostone/article/details/7397336


备注中的地址:http://blog.donews.com/holen/archive/2004/11/30/188182.aspx

由于历史的原因,造成这么多的字符类型定义,给初学者带来了不少的困惑,常常不知道要用什么。

从上表可以清晰的看到,用预定义的宏,可以省去不少麻烦,如果统一使用这种方式,只要改变预定义符,可以方便地在 DBCS 和 Unicode 之间进行转换。

虽然说,现在基本上是 unicode 的天下了,很少再使用 DBCS,但使用预定义的宏,有些 API 使用就不用指定 A/W 的后缀,会更方便直观。


再说一下类型缩写的含义,以便记忆:

TCHARText Char
LPSTRLong Point to String
LPCWSTRLong Point to Constant Wide String

中文名称 别称 英文名称 缩写 字符集例 长度 类型定义符 常量前缀 相关函数例 备注
单字节字符集   Single-byte character set SBCS ASCII 1 byte char
LPSTR
LPCSTR
  char x = 'a' strcpy()
sprintf()
printf()
 
多字节字符集   Multi-byte character set MBCS GBK
BIG5
Shift-JIS 
1-2 bytes       _mbscpy()
sprintf()
printf()
 
统一码
万国码
单一码
标准万国码
Wide Char宽字符 unicode   UTF-16/UCS-2 2 byte wchar_t/WCHAR
LPWSTR
LPCWSTR
L wchar_t x = L'a' wcscpy()
swprintf()
wprintf()
UTF = Unicode/UCS Transformation Format
UCS = Universal Character Set

Unicode 的概念对我来说有点乱,这里涉及到两个标准制定组织,大家可以参考下面网页扩展阅读:http://blog.donews.com/holen/archive/2004/11/30/188182.aspx 
<预定义选择>   _unicode defined       TCHAR
LPTSTR
LPCTSTR
_T()/TEXT() TCHAR x = _T('a') _tcscpy()
_stprintf()
_tprintf()
根据预定义符,在编译时确定实际类型,例:
If UNICODE
  TCHAR = wchar_t
Else
  TCHAR = char
End if
其它                    
单字节字符   Single-byte characters CBCS ASCII 1 byte          
双字节字符   Double-byte characters DBCS GBK
BIG5
Shift-JIS 
1-2 bytes          


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值