C 標準裡 string和wstring

2021-07-09 06:52:43 字數 656 閱讀 3828

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

來自:

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