C++⼀CLI中如何把string类型转换成char类型?

2025-02-28 19:16:20
推荐回答(4个)
回答1:

他们都没明白楼主问题,我也找了半天
不知道楼主还问不问,我找到这个方法了
把托管的字符串类型转化为非托管的char
using namespace System::Runtime::InteropServices;

// 非托管的字符串转化为托管的字符串
String^ UnmanagedStringA2ManagedString(char* pIn)
{
return Marshal::PtrToStringAnsi(static_cast(pIn));
}
// 托管的字符串转化为非托管的字符串
char* ManagedString2UnmanagedStringA(String^ strIn)
{
IntPtr ip = Marshal::StringToHGlobalAnsi(strIn);
const char* pTemp = static_cast(ip.ToPointer());
char *pOut = new char[strlen(pTemp)+1];
strcpy_s(pOut, strlen(pTemp)+1, pTemp);
Marshal::FreeHGlobal(ip);
return pOut;
}

回答2:

string 转 char *
char *p = string.c_str();

string aa("aaa");
char *c=aa.c_str();
string mngName;
char t[200];
memset(t,0,200);
strcpy(t,mngName.c_str());

回答3:

#include
using namespace msclr::interop;

String^ str = "hello";
marshal_context context;
const char* = context.marshal_as(str);

回答4:

#include
using namespace std;

string a("hello");
char* b = a.c_str();

好像是这样吧。