我有一个问题,我正在尝试从C#转换为C ++ / CLI,我不知道如何在方法中返回字符串数组。 问题是字符串显示为数字而不是字符串。
以下是方法:
static array<String^> ^Split(String^ Victim, char SplitPoint)
{
int Index=0;
for each(char Char in Victim)
if(Char==SplitPoint)
Index++;
array<String^> ^SplitStrings = gcnew array<String^>;
Index=0;
for each(char Char in Victim)
{
if(Char==SplitPoint)
Index++;
else
SplitStrings[Index]=SplitStrings[Index]+Char;
}
return SplitStrings;
};
,C#中的原始方法如下所示:
public static string[] Split(string Victim, char SplitPoint)
{
int Index = 0;
foreach (char Char in Victim)
if (Char == SplitPoint)
Index++;
string[] SplitStrings = new string[Index + 1];
Index = 0;
foreach (char Char in Victim)
{
if (Char == SplitPoint)
{
Index++;
}
else
SplitStrings[Index] = SplitStrings[Index] + Char;
}
return SplitStrings;
}
答案 0 :(得分:2)
目前还不清楚你的实际问题是什么,所以这里是你的C#代码直接翻译成C ++ / CLI:
public:
static array<String^>^ Split(String^ Victim, wchar_t SplitPoint)
{
int Index = 0;
for each (wchar_t Char in Victim)
if (Char == SplitPoint)
Index++;
array<String^>^ SplitStrings = gcnew array<String^>(Index + 1);
Index = 0;
for each (wchar_t Char in Victim)
{
if (Char == SplitPoint)
Index++;
else
SplitStrings[Index] = SplitStrings[Index] + Char;
}
return SplitStrings;
}
请特别注意,C ++ / CLI中的char
等同于System::SByte
,而不是System::Char
- 后者的本地名称为wchar_t
。 (另外,您没有指定SplitStrings
的尺寸。)