是完全可以的,見我給你寫的原始碼及註釋。
#inlcude<string>
using namespace std;
(1)string -> ANSI C字串
string str("rtyu");
char* pStr = (char*)str.c_str(); // ANSI的字串指標,指向str的記憶體地址,然後直接使用pStr,當然你也可以把這個字串複製出來,如下:
char* pBuff = new char[str.length() + 1];
strcpy(pBuff, pStr);
// 使用pBuff
delete pBuff; // 釋放記憶體
(2)支援UNICODE的string類,你使用wstring就可以了,相關函式也全換成UNICODE版本就好了,如下:
wstring str(L"王小二");
wchar_t* pStr = (wchar_t*)str.c_str(); // 指向str字串記憶體
wchar_t* pBuff = new wchar_t[str.length() + 1];
wcscpy(pBuff, pStr); // 此時pBuff中的內容正是"王小二"
delete pBuff;
是完全可以的,見我給你寫的原始碼及註釋。
#inlcude<string>
using namespace std;
(1)string -> ANSI C字串
string str("rtyu");
char* pStr = (char*)str.c_str(); // ANSI的字串指標,指向str的記憶體地址,然後直接使用pStr,當然你也可以把這個字串複製出來,如下:
char* pBuff = new char[str.length() + 1];
strcpy(pBuff, pStr);
// 使用pBuff
delete pBuff; // 釋放記憶體
(2)支援UNICODE的string類,你使用wstring就可以了,相關函式也全換成UNICODE版本就好了,如下:
wstring str(L"王小二");
wchar_t* pStr = (wchar_t*)str.c_str(); // 指向str字串記憶體
wchar_t* pBuff = new wchar_t[str.length() + 1];
wcscpy(pBuff, pStr); // 此時pBuff中的內容正是"王小二"
delete pBuff;