CString char 與string的區別

2021-09-07 15:12:43 字數 1099 閱讀 2204

cstring是mfc或者atl中的實現;

string是c++標準庫中的實現;

char*為c程式設計中最常用的字串指標,一般以』\0』為結束標誌。

string和cstring均是字串模板類,string為標準模板類(stl)定義的字串類,已經納入c++標準之中;

cstring(typedef cstringt> cstring)為visual c++中最常用的字串類,繼承自c******stringt類,主要應用在mfc和atl程式設計中,主要資料型別有char(應用於ansi),wchar_t(unicode),tchar(ansi與unicode均可);

在mfc、atl中使用字串盡量使用cstring,畢竟都是微軟的孩子,各方面都比其它更有優勢,而在非微軟平台上或對移植性要求較高的場合推薦使用string,標準模板庫提供了那麼強大的泛型演算法,沒必要再自己去造車輪。

是c版本的標頭檔案,包含比如strcpy、strcat之類的字串處理函式。

是c++標準定義的標頭檔案,它定義了乙個string的字串類,裡面包含了string類的各種操作,如s.size(), s.erase(), s.insert()等。但又包含了老的c版本的字串操作如strcpy、strcat等,這就相當於,在的檔案中除了定義自己的string類之外,還加了乙個#include一句包含了c版本的字串操作。

在c++標準化(2023年)過程中,為了相容以前,標準化組織將所有這些檔案都進行了新的定義,加入到了標準庫中,加入後的檔名就新增了乙個"c"字首並且去掉了.h的字尾名,所以string.h標頭檔案成了cstring標頭檔案。但是其實現卻是相同的或是相容以前的,這就是的**,不要覺得又多了乙個東西。相當於標準庫組織給它蓋了個章,說「你也是我的標準程式庫的乙份子了」。

參考文章

c/c++ - 與、的區別

cstring與string的區別

c string char 區分收集

string 是 string class 類 char 是 變數型別。儘管英文string的中文意思是 字串,但在 c 中,它是類,不是簡單的字串。char 陣列 可以處理為字串,也可以處理為乙個乙個字元。作為字串進行比較,要用 strcmp,strncmp 函式,不能用 號,作為單個字元,可以用...

str與repr的區別

python列印值的時候會保持該值在python 中的狀態,不是使用者所希望看到的狀態。而使用print列印值則不一樣,print列印出來的值是使用者所希望看到的狀態。例如 hello,world hello,world python列印出來的值是給python理解的,這裡python理解為字串,所...

python json與str的轉換

python str轉json物件,需要用到json的loads函式 當字串是物件時用 json.loads str import json str j json.loads str 當字串是個檔案時用 json.load f import json import pandas as pd f op...