(1)窄字符char,占1个字节css
char的范围有两种:html
signed char:带符号,取值范围(-128-127);数组
unsigned char:不带符号,取值范围(0-255)。函数
赋值方法: spa
char cStr[20] = "Hello world!";
(2)宽字符wchar_t ,占2个字节code
wchar_t是Unicode字符的数据类型,它实际定义为:htm
typedef unsigned short wchar_t;
赋值方法:blog
wchar_t wcStr[20] = L"Hello world!";
窄字符相比,前面多了一个大写的L,这个L的做用就是告诉编译器,这个字符串按照宽字符来存储(一个字符占两个字节)。字符串
(1)窄字节转换成宽字节原型
C 库函数 size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) 把参数 str 所指向的多字节字符的字符串转换为参数 pwcs 所指向的数组。
下面是 mbstowcs() 函数的声明。
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)
该函数返回转换的字符数,不包括结尾的空字符。若是遇到一个无效的多字节字符,则返回 -1 值。
(2)宽字节转换成窄字节
C 库函数 size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 把宽字符字符串 pwcs 转换为一个 str 开始的多字节字符串。最多会有 n个字节被写入 str 中。
下面是 wcstombs() 函数的声明。
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)
该函数返回转换和写入到 str 中的字节数,不包括结尾的空字符。若是遇到一个无效的多字节字符,则返回 -1 值。
函数名 | 函数原型 | 函数功能 | 返回值 |
wcscat | wchar_t *wcscat(wchar_t *s1, const wchar_t *s2); | 将s2所指示的字符串链接到s1后面 |
s1所指字符串的首地址 |
wcschr | wchar_t *wcschr(const wchar_t *s, wchar_t c); | 在s字符串中找到c字符第一次出现的位置 |
若找到返回该字符的地址,不然返回NULL |
wcscmp | int wcscmp(const wchar_t *s1, const wchar_t *s2); | 让字符串s1与字符串s2进行比较 | s1<s2,返回负数;s1 == s2,返回0;s1 > s2返回正数 |
wcscpy | wchar_t *wcscpy(wchar_t *s1, const wchar_t *s2); | 将s2所指字符串覆盖方式复制到s1中 | s1所指字符串的首地址 |
wcslen | size_t wcslen(const wchar_t *s); | 求s所指字符串的长度 | 返回有效字符的个数 |
wcsstr | wchar_t *wcsstr(const wchar_t *s1, const wchar_t *s2); | 找出字符串s2在字符串s1中第一次出现的位置 | 若找到返回该位置的地址,不然返回NULL |