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