通常,有以下三种方式定义字符和字符串: ANSI字符和字符串; Unicode字符和字符串; 双模式字符和字符串. 1.ANSI字符和字符串 为了定义一个ANSI字符变量,字符数组或字符指针,在C/C++程序中通常使用char或char*数据类型来定义.同时,Win32 API还定义了CHAR和LPSTR数据类型来增强代码的可移植性. 在对ANSI字符串进行操作时,C/C++通常使用下列的几个函数: -strlen() -----返回字符串的长度; -strcpy() --------复制字符串; -strcat() ----------连接字符串 2.Unicode 字符和字符串 在Unicode编码中怕有字符的存储都占用两个字节,而在编程时,通过使用字符前缀"'L"来创建一个Unicode字符或字符串,如L'H'表示一个常量Unicode字符,而L'Hello"表示一个常量Unicode字符串. 为了定义一个Unicode数据类型,通常使用WCHAR来定义一个Unicode字符变量或字符数驵,使用LPWSTR定义一个指向Unicode字符串的指针. 与ANSI字符串操作函数相对应,对Unicode字符串的操作使用下列对应的函数: -wcslen() 返回字符串的长度; -wcscpy() 复制字符串 -wcscat() 连接字符串 3.双模式字符串和字符串 双模式字符串允许程序员在只拥有一个源文件的清况下,使其中的字符和字符串适用于Unicod和非UnicodE的操作系统.为了将一个字符或字符串定义 为双模式通常使用TEXT()或_T()宏,它们被定义在tchar.h头文件中. 为了在一个C/C++源文件中请求Unicode字符选项,需要在include语句之前定义_UNICODE,如下: #define _unicode #include<tchar.h> 双模式字符串操作函数如下: tcslen() --返回字符串的长度 tcscpy() -复制字符串; tcscat() 连接字符串. 4.Unicode转换 1.转换为Unicode mbstowcs函数: mbstowcs( wchar_T *wcstr, //l输出字符串 const char *mbstr, //输入字符串 size_T count); //字符个数 例: WCHAR wchOut[256]; LPSTR pstrIn="Hello Word"; mbstowcs(wchOut,pstrIn,strlen(pstrIn)); 从Unicode转换 wcstombs( char *mbstr, //输出字符串 const wchar_T*wcstr,//输入字符串 size_t count); //字符个数 例: CHAR mbsOut[256]; LPWSTR pwchIn=L"A Unicode String"; wcstombs(mbsOut,pwchIn,wcslen(pwchIn); |
Windows CE下的字符串
最新推荐文章于 2023-05-08 15:27:25 发布
Windows CE下的Win32编程
2007-07-21 09:58