是完全可以的,见我给你写的源代码及注释。
#inlcude
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;