/* 寬字符串的打印 */ #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() | 內存賦值函數 |