托管字符串赋值问题求解
唉。。最近处理托管方面的字串发现相当的纠结,经常遇到一些问题编译通不过问题是:
现有一个是 String ^dst=""; 一个是已知的 string src = "123456789";这样的值。
现在就是想把src中赋值给dst
试过
1. strcpy, 提示 不能将参数 String^ 转成 char *
2. 搞个
for (BYTE i=0;i<11;i++)
{
dst[i]=src[i];
}
提示String::default属性没有set方法。
快疯了。
--------------------编程问答-------------------- 我晕啊,是不是太简单没人理我了。 --------------------编程问答-------------------- 快快哪位告诉我,我要散分了。 --------------------编程问答-------------------- 应该是不行的!string是C++标准类型,String是托管C++的类库,不能相互赋值的 --------------------编程问答--------------------
String ^dst=gcnew String(src.c_str());--------------------编程问答--------------------
请教一下,如果反过来如何赋值?
一个 String ^dst,要给一个 string src赋值。 --------------------编程问答--------------------
string src= static_cast<const char*>(Marshal::StringToHGlobalAnsi(dst).ToPointer());
--------------------编程问答--------------------
哇楼上的方法果然可以。现在再请教一个问题:
假设 cmdtext = "aa bbbbbbb"
void func(System::String ^cmdtext)
{
array<String^>^arr = cmdtext->Split(' ');
那arr[1]如何检测长度啊?
试过的办法
arr[1].Length //报错
sizeof(arr[1]) //不行=4
arr[1]->get_Length //报错
} --------------------编程问答--------------------
arr[1]->Length;--------------------编程问答-------------------- Marshal::Ptr2StringAuto(src.c_str())
Marshal::String2Ptr(string^)
补充:.NET技术 , VC.NET