C 實現CString和string的互相轉換

2021-07-11 21:01:58 字數 873 閱讀 4924

mfc程式中在openfiledialog裡面,經常涉及到cstring到標準庫的string類的轉換。

(1) cstring->std::string

例子:cstring strmfc=「test「;

std::string strstl;

strstl=strmfc.getbuffer(0);

unicode情形下

cstringw strw = _t("test");

cstringa stra(strw.getbuffer(0));

strw.releasebuffer();

std::string imgpath=stra.getbuffer(0);

stra.releasebuffer();

(2)std::string->cstring  

例子:cstring strmfc;

std::string strstl=「test「;

strmfc=strstl.c_str();

afxextractsubstring是擷取字串的函式,很好用,不過美中不足的地方在與它只能使用單個字元作為分割符。

但是這種情況在很多時候都行不通,如果分割符需要是兩個字元以上呢?

cstring裡面有find,然後再組成陣列。

void split(cstring source, cstringarray& dest, cstring centerision)   

}

cstring source是需要擷取的原字串,

cstringarray& dest 是最終結果的陣列

cstring centerision 是用來做分割符的字串

**:

C 實現CString和string的互相轉換

cstring std string 例子 cstring strmfc test std string strstl strstl strmfc.getbuffer 0 std string cstring 例子 cstring strmfc std string strstl test strm...

C 實現CString和string的互相轉換

cstring std string 例子 cstring strmfc test std string strstl strstl strmfc.getbuffer 0 unicode情形下 cstringw strw t test cstringa stra strw.getbuffer 0 s...

C 實現CString和string的互相轉換

使用ado時遇到轉化 1 bstr t與string的轉化 listtablename bstr t table name prstschema fields getitem table name value 獲取表的名稱 tablename.push back lpcstr table name ...