.net 在C+中使用复杂字符序列拆分字符串+/CLI

.net 在C+中使用复杂字符序列拆分字符串+/CLI,.net,split,c++-cli,.net,Split,C++ Cli,我下面有一个字符串,它给我带来了很多悲伤 "John","\Jane","\Jerry" 上述字符串中的VisualC++中的声明如下: String ^mynames="John\",\"\\\Jane\",\"\\Jerry"; 问题是我无法按字符,“\拆分每个名称。 我需要将结果存储在数组中: array<String^>^ data_line; 如果没有收到编译器错误,代码将恢复为字符串.Split(Char[]),并接受“,,,”和\作为分隔符 您需要使用,“\作为分

我下面有一个字符串,它给我带来了很多悲伤

"John","\Jane","\Jerry"

上述字符串中的VisualC++中的声明如下:

String ^mynames="John\",\"\\\Jane\",\"\\Jerry";
问题是我无法按字符
,“\
拆分每个名称。 我需要将结果存储在数组中:

array<String^>^ data_line;

如果没有收到编译器错误,代码将恢复为
字符串.Split(Char[])
,并接受
\
作为分隔符

您需要使用
,“\
作为分隔符,因此请使用:

data_line=test->Split(new string[] {"\",\"\\\"}, StringSplitOptions.None);

这是VisualC++中CLI/C++的一个工作解决方案。 split函数不接受直接根据用户输入的一组字符拆分字符串。 要解决此问题,需要声明字符串数组并将其传递给split函数。 有点愚蠢和乏味,但这里有一个工作代码示例

String ^mynames="John\",\"\\\Jane\",\"\\Jerry";
array<String^>^ data_line;
array<String^>^ stringtocompare = gcnew array<String^>(1);  //Declare an array to do the comparison
stringtocompare[0]="\",\"\\";       //Compare against the character sequence ","\
data_line=mynames->Split(stringtocompare, StringSplitOptions::None);
String^mynames=“John\”,\“\\\Jane\”,\“\\Jerry”;
数组^数据线;
数组^stringtocompare=gcnew数组(1)//声明一个数组来进行比较
stringtocompare[0]=“\”,\“\”//对照字符序列“,”进行比较\
数据线=mynames->Split(stringtocompare,StringSplitOptions::None);

这就是您使用的代码吗?@user2623967是。。但我只是编辑了变量名,所以它是一致的。这不是托管C++代码,尤其是新的字符串[]。但谢谢你让我走上正轨。在您的帮助下,我在C++中附加了一个工作解决方案作为答案。谢谢
String ^mynames="John\",\"\\\Jane\",\"\\Jerry";
array<String^>^ data_line;
array<String^>^ stringtocompare = gcnew array<String^>(1);  //Declare an array to do the comparison
stringtocompare[0]="\",\"\\";       //Compare against the character sequence ","\
data_line=mynames->Split(stringtocompare, StringSplitOptions::None);