寫這篇部落格的原因是在乙個專案中看到str.find("abc") != std::string::npos
這麼一句**,在印象中,find返回值不是這麼複雜,如果沒找到返回值是-1,直接和-1做判斷就可以str.find("abc") != -1
,之後就開始了檢視msdn之路,才發現string不是那麼單純。如果要把標準c++ string轉換成c style string可以用成員函式basic_string::c_str()。c style string可以簡單的理解為char型別陣列以』\0』結尾,例如char *cstr = "cstr";
或者char cstr1 = "cstr";
,char cstr1[5] = "cstr";\\由於c style string結尾有'\0'因此如果要明確陣列大小的話,需要比字串中字元個數多1。
簡單來說basic_string是乙個模版類,string是模版形參為char的basci_string模版類的型別定義,即typedef
typedef basic_string, allocator >
string;
而npos,是初始化為-1表示沒有找到:
static
const size_type npos = -1;
參考連線:basic_string參考
string參考
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string 對映為 framework的 string。如...
String和string的區別
最近老看見有人在論壇上問string和string有什麼區別,答案五花八門差點兒沒讓我背過氣去,乾脆放到blog上來,論壇上就貼位址了 首先,在一般情況下,string和string是一樣的,但是他們也存在如下區別 1 string始終代表 system.string 1.x 或 system.st...
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string對映為framework的string。如果用s...