c++ ? c# 怎么从一个路径的string获取最后一个“?”之后的字符...

问的是怎么调用还是相应成员函数/方法的内部实现?
如果是问调用的话,MFC是调用CString的成员函数,即ReverseFind('\\'),根据返回的索引值进行相应判断和处理。
C#是取split后的string数组的最后一个元素(string),注意处理空字符串的问题。
另外,务必注意反斜杠的转义字符表示法。
也就是说问题中的第一个字符串应该这样定义
string folder = "C:\\Users\\Desktop";

使用char类型的反斜杠时也应表示为'\\'
其实Windows有一个函数叫PathFindFileName
比如
LPTSTR szFullPath = _T("C:\Users\Desktop\ReadMe.txt");
那么
LPTSTR szFile = PathFindFileName(szFullPath);
调用之后szFile就是 ReadMe.txt 了

头文件Shlwapi.h,库文件Shlwapi.lib
多方便。

C#同理

string filename = System.IO.Path.GetFileName("C:\Users\Desktop\ReadMe.txt");
!!!
用 IndexOf / LastIndexOf

反向搜索也许,GetCharAt(int index) 之类的,从字符串长度-1位置开始检索,每次索引减一
看这个char是不是 '\\',就能确定位置了
使用一个while循环从字符串后面往前找找到第一个/,然后记住位置,往后拷贝字符串就好了
int p=s.Length-1;
while (p>=0 && s[p]!='\') p--;

if (p>-1) path=s.Substring(p, s.Length-p); // 123\abc