/* 寬字符串的打印 */ #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]------\n", pw); printf("--printf--[%S]------\n", pw); ////wprintf打印寬字符串 //wprintf(L"--wprintf--[%ls]------\n", pw); //wprintf(L"--wprintf--[%S]------\n", 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() | 內存賦值函數 |
