1. 程式人生 > >寬字元和多字元處理對照表

寬字元和多字元處理對照表

對照表:

1:字元分類:

 寬字元函式普通C函式描述

iswalnum()isalnum() 測試字元是否為數字或字母
iswalpha() isalpha() 測試字元是否是字母
iswcntrl() iscntrl() 測試字元是否是控制符
iswdigit() isdigit() 測試字元是否為數字
iswgraph()isgraph() 測試字元是否是可見字元
iswlower()islower() 測試字元是否是小寫字元
iswprint() isprint() 測試字元是否是可列印字元
iswpunct() ispunct() 測試字元是否是標點符號
iswspace() isspace() 測試字元是否是空白符號

iswupper() isupper() 測試字元是否是大寫字元
iswxdigit() isxdigit()測試字元是否是十六進位制的數字

2:大小寫轉換:

寬字元函式 普通C函式描述
towlower()tolower()把字元轉換為小寫
towupper() toupper() 把字元轉換為大寫

3:字元比較: 

 寬字元函式普通C函式描述

wcscoll() strcoll() 比較字串

4:日期和時間轉換:

寬字元函式描述
strftime() 根據指定的字串格式和locale設定格式化日期和時間
wcsftime() 根據指定的字串格式和locale設定格式化日期和時間, 並返回寬字串
strptime() 根據指定格式把字串轉換為時間值, 是strftime的反過程

5:列印和掃描字串:

寬字元函式描述
fprintf()/fwprintf() 使用vararg參量的格式化輸出
fscanf()/fwprintf() 格式化讀入
printf() 使用vararg參量的格式化輸出到標準輸出
scanf() 從標準輸入的格式化讀入
sprintf()/swprintf() 根據vararg參量表格式化成字串
sscanf() 以字串作格式化讀入
vfprintf()/vfwprintf() 使用stdarg參量表格式化輸出到檔案
vprintf() 使用stdarg參量表格式化輸出到標準輸出
vsprintf()/vswprintf() 格式化stdarg參量表並寫到字串

6:數字轉換:

寬字元函式 普通C函式描述
wcstod() strtod() 把寬字元的初始部分轉換為雙精度浮點數
wcstol() strtol() 把寬字元的初始部分轉換為長整數
wcstoul() strtoul() 把寬字元的初始部分轉換為無符號長整數

7:多位元組字元和寬字元轉換及操作:

寬字元函式描述
mblen() 根據locale的設定確定字元的位元組數
mbstowcs() 把多位元組字串轉換為寬字串
mbtowc()/btowc() 把多位元組字元轉換為寬字元
wcstombs() 把寬字串轉換為多位元組字串
wctomb()/wctob() 把寬字元轉換為多位元組字元

8:輸入和輸出:

寬字元函式 普通C函式描述
fgetwc() fgetc() 從流中讀入一個字元並轉換為寬字元
fgetws() fgets() 從流中讀入一個字串並轉換為寬字串
fputwc() fputc() 把寬字元轉換為多位元組字元並且輸出到標準輸出
fputws() fputs() 把寬字串轉換為多位元組字元並且輸出到標準輸出串
getwc() getc() 從標準輸入中讀取字元, 並且轉換為寬字元
getwchar() getchar() 從標準輸入中讀取字元, 並且轉換為寬字元
None gets() 使用fgetws()
putwc() putc() 把寬字元轉換成多位元組字元並且寫到標準輸出
putwchar() putchar() 把寬字元轉換成多位元組字元並且寫到標準輸出
None puts() 使用fputws()
ungetwc() ungetc() 把一個寬字元放回到輸入流中

9:字串操作:

寬字元函式 普通C函式描述
wcscat() strcat() 把一個字串接到另一個字串的尾部
wcsncat() strncat() 類似於wcscat(), 而且指定粘接字串的粘接長度.
wcschr() strchr() 查詢子字串的第一個位置
wcsrchr() strrchr() 從尾部開始查詢子字串出現的第一個位置
wcspbrk() strpbrk() 從一字元字串中查詢另一字串中任何一個字元第一次出現的位置
wcswcs()/wcsstr() strchr() 在一字串中查詢另一字串第一次出現的位置
wcscspn() strcspn() 返回不包含第二個字串的的初始數目
wcsspn() strspn() 返回包含第二個字串的初始數目
wcscpy() strcpy() 拷貝字串
wcsncpy() strncpy() 類似於wcscpy(), 同時指定拷貝的數目
wcscmp() strcmp() 比較兩個寬字串
wcsncmp() strncmp() 類似於wcscmp(), 還要指定比較字元字串的數目
wcslen() strlen() 獲得寬字串的數目
wcstok() strtok() 根據標示符把寬字串分解成一系列字串
wcswidth() None 獲得寬字串的寬度
wcwidth() None 獲得寬字元的寬度

另外還有對應於memory操作的 wmemcpy(), wmemchr(), wmemcmp(), wmemmove(), wmemset().