C 標準裡 string和wstring

2021-07-22 11:01:47 字數 871 閱讀 5875

在c++標準裡定義了兩個字串string和wstring 

typedef basic_stringstring; 

typedef basic_stringwstring; 

前者string是常用型別,可以看作char,其實這正是與string定義中的

_elem=char相一致。而wstring,使用的是wchar_t型別,這是寬字元,用於滿足非ascii字元的要求,例如unicode編碼,中文,日文,韓文什麼的。對於wchar_t型別,實際上c++中都用與char函式相對應的wchar_t的函式,因為他們都是從同乙個模板類似於上面的方式定義的。因此也有wcout, wcin, werr等函式。      實際上string也可以使用中文,但是它將乙個漢字寫在2個char中。而如果將乙個漢字看作乙個單位wchar_t的話,那麼在wstring中就只占用乙個單元,其它的非英文文字和編碼也是如此。這樣才真正的滿足字串操作的要求,尤其是國際化等工作。 

看一下下面的程式,就會理解兩者的差別。

#include #include using namespace std;

#define tab "\t"

int main()

{

locale def;

cout《下面的輸出說明了,如何正確使用string和wstring的方法。第三個因為使用string來表示漢字,出現了一些錯誤。最後一行也是錯誤,導致了輸出也受到了影響,沒有空格與回車。(最後兩個就不要管中英文了,僅僅說明一下中文構造方法是錯誤的) 

《掌握標準c++類》在第十二章《語言支援》中專門講c++的國際化和本地化問題,c++提供了i18n的標準處理,軟體開發者可以參考。        c++標準庫還是非常博大精深的,功能比較齊全的。繼續學習。

C 標準裡 string和wstring

在c 標準裡定義了兩個字串string和wstring typedef basic stringstring typedef basic stringwstring 前者string是常用型別,可以看作char,其實這正是與string定義中的 elem char相一致。而wstring,使用的是w...

C 標準裡 string和wstring

前者string是常用型別,可以看作char,其實這正是與string定義中的 elem char相一致。而wstring,使用的是wchar t型別,這是寬字元,用於滿足非ascii字元的要求,例如unicode編碼,中文,日文,韓文什麼的。對於wchar t型別,實際上c 中都用與char函式相...

string標準庫型別 C

c 中string的學習體會 string 1 不允許把兩個字串字面值連線起來,乙個string物件 字串字面值返回的是string物件.string size type只是string裡方便移植性的定義的一種型別 2 cout include using namespace std int mai...