VC中的字符串处理函数
来源:互联网 发布:橙星管培生 知乎 编辑:程序博客网 时间:2024/05/22 15:57
http://blog.donews.com/honsan/archive/2005/06/13/428370.aspx
VC中的字符串类型和处理函数是一个比较复杂的话题,我准备写一篇文章详细地讲述这个问题。今天的内容仅限于处理字符串的C函数。
这类函数共有四族,以取字符串长度的函数为例,四族函数如下:
strlen str族
wcslen wcs族
_mbslen _mbs族
_tcslen _tcs族
其中,前两个族的函数是C语言的标准库函数,以下划线开始的两族函数是VC中特有的函数,即微软的扩展函数。
这四族函数最大的区别是它们所用的字符集不同,或者说它们的参数类型不同。
str族是我们都比较熟悉的,它的参数类型是char*,这一族函数均以字节为单位进行处理,一个英文字符占一个字节,一个汉字占两个字节,因此strlen("中文ABC")的结果是7,字符串在内存中实际占用7个字节。
再说说wcslen,它的参数类型是wchar_t*,wchar_t称为宽字符,或者UNICODE字符,是用两个字节表示一个字符。UNICODE字符串都要在前面加上一个L前缀,因此,_wcslen(L"中文ABC")的结果是5,但字符串在内存中占10个字节。
_mbslen似乎很少用,它的参数类型是unsigned char*,_mbs族函数是为了处理汉字字符专门引入的,它以实际的字符为单位而不是以字节为单位进行处理,一个汉字是一个字符,因此_mbslen("中文ABC")的结果是5,但字符串在内存中占7个字节。
_tcslen称为自适应函数,它的参数类型是TCHAR,TCHAR是一个自适应类型。在UNICODE环境下_tcslen等效于wcslen,TCHAR等效于wchar_t,在非UNICODE环境下,_tcslen等效于strlen,TCHAR等效于char。因此,_tcslen(_T("中文ABC"))的结果可能是7或5,字符串本身在内存中可能占7个字节,也可能占10个字节,依环境而定。
综上所述,如果你的程序既要制作成UNICODE版,又要制作成非UNICODE版,最好使用_tcs族函数和TCHAR类型,并且每个字符串常量最好用_T()括起来。
- VC中的字符串处理函数
- vc 字符串的处理函数
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- javascript中的字符串处理函数
- python中的字符串处理函数
- Python 中的字符串处理函数
- 字符串处理库中的字符串函数
- vc字符串处理函数,gbk utf8互相转换,分割字符串
- javascript中的字符串处理函数大全
- JSP 中的处理中文字符串的函数
- 标准C语言中的字符串处理函数
- mysql中的字符串处理函数(v5.1)
- Linux内核中的字符串处理函数
- 标准C语言中的字符串处理函数
- Linux内核中的字符串处理函数
- [VB.NET源码]西门子短信文件夹文件读取器
- [VB.NET源码]线城的信息及线程池的应用
- [VB.NET源码]销售管理系统
- ASP 编程中 20 个非常有用的例子——适合初学者
- linux应用杂项,备忘
- VC中的字符串处理函数
- A problem during the compilation of Lemur and the solution
- IIS 5.1和IIS 6.0一些显著的重要区别
- 从C# 2.0新特性到C# 3.5新特性
- session的用法具体解说
- ASP初学者常犯的几个错误
- 求职最受欢迎的十大技能
- GTK+图形化应用程序开发学习笔记(十三)—微调构件
- 动态网页制作规范