(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 |