Windows CE下的字符串

来源:互联网 发布:罪恶装备人物乐乎 编辑:程序博客网 时间:2024/05/19 13:18
Windows CE下的Win32编程
2007-07-21 09:58

通常,有以下三种方式定义字符和字符串:

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);