cstring轉(zhuǎn)換成string cstring與string有何區(qū)別?
cstring與string有何區(qū)別?string和CString有什么區(qū)別<string>是一個C標(biāo)準(zhǔn)庫頭文件,它包含了準(zhǔn)容器類STD::string的聲明(但實際上類string只是bas
cstring與string有何區(qū)別?
string和CString有什么區(qū)別
<string>是一個C標(biāo)準(zhǔn)庫頭文件,它包含了準(zhǔn)容器類STD::string的聲明(但實際上類string只是basic)ustring<char>的typedef用于字符串操作。
&Ltcstring>是C標(biāo)準(zhǔn)庫頭文件ltstring的C標(biāo)準(zhǔn)庫版本。H>,它包含與c樣式字符串(nul,即“0”)相關(guān)的一些類型和函數(shù)的聲明,如StrCmp、strchr、strstrstrstr等<cstring>和<string之間的最大區(qū)別。H>是聲明的名稱在STD命名空間中,而不是后者的全局命名空間中。
請看定義。String是一個新標(biāo)準(zhǔn),它定義了namespace STD。CString也是一個新標(biāo)準(zhǔn),但定義中包含String。H.
可以在字符串中執(zhí)行==>等操作,但不能在CString中執(zhí)行。
C 中CString,std::string ,string三者的關(guān)系和區(qū)別,最好還有他們的用法,相互怎么轉(zhuǎn)換?
最后兩個是C的標(biāo)準(zhǔn)庫,意思是一樣的。但是,如果要直接使用string,則必須在main函數(shù)之前添加using namespace STD。第一個是MFC類庫。標(biāo)準(zhǔn)C不能直接使用。在使用MFC開發(fā)時可以直接使用它,MFC也可以使用string。一般來說,string應(yīng)用廣泛,但是CString有其局限性
在C語言的開發(fā)中,我們經(jīng)常會遇到string、char*和CString,這三種字符串類型既相似又不同,常常讓人困惑。下面詳細(xì)介紹了這三種類型的區(qū)別、關(guān)系和轉(zhuǎn)換:
它們各自的區(qū)別
char*:
char*是指向字符的指針,它是一種內(nèi)置類型。它可以指向一個字符或表示字符數(shù)組的第一個地址(第一個字符的地址)。大多數(shù)情況下,我們使用它的第二個函數(shù)來表示字符串,這與字符串?dāng)?shù)組char ch[n]相同。表示字符串時,有一個“0”終止符作為字符串的結(jié)束標(biāo)志。
String:
String是C標(biāo)準(zhǔn)庫(STL)中的類型。它是在
CString
CString中定義的類,在MFC編程中常用,屬于MFC。例如,從對話框中的GetWindowText獲得的字符串是CString類型。CString是在中定義的
在C中優(yōu)先使用string是一個好習(xí)慣。除非C的diehard用于它,否則應(yīng)該使用string而不是char。
Char用于處理任何8位數(shù)據(jù)類型,如邏輯值、整數(shù)、字符ASCII碼等。要處理字符串,需要使用Char[]數(shù)組,這很麻煩,也很難控制。
String是一個模板類,專門用于處理字符串,并封裝了許多成員函數(shù)來處理字符串。它是C標(biāo)準(zhǔn)庫的一部分,所有C實現(xiàn)都支持它,并由C創(chuàng)始人推薦。
選擇使用哪一種并不困難。