C# 转换字符串标记器 可以请人帮我把Strutok代码转换成C++的c++吗? strFileName = StringFunctions.StrTok(strFileToCopy, "\\"); strFileName = StringFunctions.StrTok(null, "\0");

C# 转换字符串标记器 可以请人帮我把Strutok代码转换成C++的c++吗? strFileName = StringFunctions.StrTok(strFileToCopy, "\\"); strFileName = StringFunctions.StrTok(null, "\0");,c#,c++,C#,C++,试用代码: string strFileName = ""; string[] FileNames = Regex.Split(strFileToCopy, "\\"); 根据这里的StrTok的描述和示例:,它似乎*大致相当于string的方法: var str = "- This, a sample string."; var pch = str.Split(" ,.-".ToCharArray(), StringSplitOptions.Re

试用代码:

string strFileName = ""; 

string[] FileNames = Regex.Split(strFileToCopy, "\\"); 

根据这里的
StrTok
的描述和示例:,它似乎*大致相当于
string
的方法:

var str = "- This, a sample string.";
var pch = str.Split(" ,.-".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach (var result in pch)
{
    Console.WriteLine(result);
}
这将产生:

这个

a

样品

与链接的strtok页面中的示例相匹配

*我认为区别在于,要使用strtok获取所有条目,必须重复调用它,为后续调用传递
NULL
,而C#的
Split
只返回一个令牌数组


正如其他人在评论中所建议的,如果您只是想获取文件名,那么应该使用
Path.GetFileName
(您需要使用System.IO;)添加

产出:

test.txt


您可以使用std中的stringstream

std::istringstream ss(“这是标记化的行”);
字符串标记;
while(std::getline(ss,token“”)

你能告诉我们你到目前为止试过什么吗?如果您还没有尝试过任何东西,这可能是一个很好的起点好吧,所以我使用了StrTok的拆分。。这条路对吗???字符串strFileName=“”;string[]filename=Regex.Split(strFileToCopy,“\\”);
Split
有什么问题吗?我想了解如何更好地使用StrTok?使用上面的代码?如果你真的得到一个文件名,那么使用这个并不能回答“如何将这个strtok代码转换成c#”的问题!
string str = @"c:\users\john\desktop\test.txt";
Console.WriteLine(Path.GetFileName(str));