cstring與string有何區(qū)別?
string與cstring有什么區(qū)別
<string>是C++標(biāo)準(zhǔn)庫(kù)頭文件,包含了擬容器class std::string的聲明(不過class string事實(shí)上只是basic_string<char>的typedef),用于字符串操作。
<cstring>是C標(biāo)準(zhǔn)庫(kù)頭文件<string.h>的C++標(biāo)準(zhǔn)庫(kù)版本,包含了C風(fēng)格字符串(NUL即'\0'結(jié)尾字符串)相關(guān)的一些類型和函數(shù)的聲明,例如strcmp、strchr、strstr等。<cstring>和<string.h>的最大區(qū)別在于,其中聲明的名稱都是位于std命名空間中的,而不是后者的全局命名空間。
看定義就知道了,string是新標(biāo)準(zhǔn),定義了namespace std;而cstring雖然也是新標(biāo),但是定義中包含的是string.h。
string中可以進(jìn)行+ = += >等運(yùn)算,而cstring中不能進(jìn)行相關(guān)運(yùn)算。