/* 宽字符串的打印 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <wchar.h> #include <locale.h> /* 宽字符转换 */ void show(void) { const wchar_t * pw = L"今天天气还不错啊!"; /* 设计说明: 如果打印中文字符,setlocale()是必须的 */ setlocale(LC_ALL, "zh_CN.UTF-8"); /* 知识补充: printf和wprintf不能混用,即一个程序中使用了printf, 就不使用wprintf,反之也是,既然printf输出char 和 wchar_t字符都可以,所以统一使用printf是最佳选择。 */ //printf打印宽字符串 printf("--printf--[%ls]------ ", pw); printf("--printf--[%S]------ ", pw); ////wprintf打印宽字符串 //wprintf(L"--wprintf--[%ls]------ ", pw); //wprintf(L"--wprintf--[%S]------ ", pw); } int main() { show(); return 0; }
| 宽字符函数 | 普通C函数 | 描述 |
| iswalnum() | isalnum() | 测试字符是否为数字或字母 |
| iswalpha() | isalpha() | 测试字符是否是字母 |
| iswcntrl() | iscntrl() | 测试字符是否是控制符 |
| iswdigit() | isdigit() | 测试字符是否为数字 |
| iswgraph() | isgraph() | 测试字符是否是可见字符 |
| iswlower() | islower() | 测试字符是否是小写字符 |
| iswprint() | isprint() | 测试字符是否是可打印字符 |
| iswpunct() | ispunct() | 测试字符是否是标点符号 |
| iswspace() | isspace() | 测试字符是否是空白符号 |
| iswupper() | isupper() | 测试字符是否是大写字符 |
| iswxdigit() | isxdigit() | 测试字符是否是十六进制的数字 |
| wcslen() | strlen() | 获取字符数组长度 |
| towlower() | tolower() | 把字符转换为小写 |
| towupper() | toupper() | 把字符转换为大写 |
| wcscoll() | strcoll() | 比较字符串 |
| wcsftime() | strftime() | 根据指定的字符串格式和locale设置格式化日期和时间 |
| fwprintf() | fprintf() | 使用vararg参量的格式化输出 |
| fwscanf() | fscanf() | 格式化读入 |
| swprintf() | sprintf() | 根据vararg参量表格式化成字符串 |
| vfwprintf() | vfprintf() | 使用stdarg参量表格式化输出到文件 |
| vswprintf() | vsprintf() | 格式化stdarg参量表并写到字符串 |
| wcstod() | strtod() | 把宽字符的初始部分转换为双精度浮点数 |
| wcstol() | strtol() | 把宽字符的初始部分转换为长整数 |
| wcstoul() | strtoul() | 把宽字符的初始部分转换为无符号长整数 |
| _itow_s() | itoa() | 整型转宽字符串 |
| _ltow_s() | ltoa() | 长整型转宽字符串 |
| _ultow_s() | ultoa() | 无符号长整数转字符串 |
| fgetwc() | fgetc() | 从流中读入一个字符并转换为宽字符 |
| fgetws() | fgets() | 从流中读入一个字符串并转换为宽字符串 |
| fputwc() | fputc() | 把宽字符转换为多字节字符并且输出到标准输出 |
| fputws() | fputs() | 把宽字符串转换为多字节字符并且输出到标准输出串 |
| getwc() | getc() | 从标准输入中读取字符, 并且转换为宽字符 |
| getwchar() | getchar() | 从标准输入中读取字符, 并且转换为宽字符 |
| putwc() | putc() | 把宽字符转换成多字节字符并且写到标准输出 |
| putwchar() | putchar() | 把宽字符转换成多字节字符并且写到标准输出 |
| ungetwc() | ungetc() | 把一个宽字符放回到输入流中 |
| wcscat() | strcat() | 把一个字符串接到另一个字符串的尾部 |
| wcsncat() | strncat() | 类似于wcscat(), 而且指定粘接字符串的粘接长度. |
| wcschr() | strchr() | 查找子字符的第一个位置 |
| wcsrchr() | strrchr() | 从尾部开始查找子字符出现的第一个位置 |
| wcspbrk() | strpbrk() | 从一字符字符串中查找另一字符串中任何一个字符第一次出现的位置 |
| wcscspn() | strcspn() | 返回不包含第二个字符串的的初始数目 |
| wcsspn() | strspn() | 返回包含第二个字符串的初始数目 |
| wcscpy() | strcpy() | 拷贝字符串 |
| wcsncpy( | strncpy() | 类似于wcscpy(), 同时指定拷贝的数目 |
| wcscmp() | strcmp() | 比较两个宽字符串 |
| wcsncmp() | strncmp() | 类似于wcscmp(), 还要指定比较字符字符串的数目 |
| wcslen() | strlen() | 获得宽字符串的数目 |
| wcstok() | strtok() | 根据标示符把宽字符串分解成一系列字符串 |
| wmemcpy() | memory() | 内存拷贝函数 |
| wmemset() | memset() | 内存赋值函数 |