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

例如:stringfolder="C:\Users\Desktop";//想从folder中获取字符串"Desktop"stringfile="C:\Users\Desk... 例如:
string folder = "C:\Users\Desktop";
//想从folder中获取 字符串"Desktop"
string file = "C:\Users\Desktop\ReadMe.txt";
//想从file中获取 字符串 "ReadMe.txt"

//当然最后那个字符串的长度 是随机的,也就是说没有办法通过下面的代码搞定
int length = 5;
string newstring = folder.SubString(folder.Length - length,length);

然后:
我记得在mfc中看过别人写过 类似于这样的一种思路的代码:
//反向搜索string 中 '\'第一次出现的地方,然后直接截取 '\'之后的字符串.....

今天在c#里面看到,可以通过 string.split 函数来讲整个字符串 按 '\' 的间隔拆分成多个字符串,然后就可以拿到最后那个数据了...

那么,最后,我想知道,要实现上面的功能,用c++或者c#分别怎么实现呢??
谢谢.....
展开
 我来答
百度网友2cad1c7
2013-09-11 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:170万
展开全部
问的是怎么调用还是相应成员函数/方法的内部实现?
如果是问调用的话,MFC是调用CString的成员函数,即ReverseFind('\\'),根据返回的索引值进行相应判断和处理。
C#是取split后的string数组的最后一个元素(string),注意处理空字符串的问题。
另外,务必注意反斜杠的转义字符表示法。
也就是说问题中的第一个字符串应该这样定义
string folder = "C:\\Users\\Desktop";

使用char类型的反斜杠时也应表示为'\\'
空雪梦见
推荐于2017-11-26 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1193万
展开全部
其实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");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangpaishi
2013-09-11 · TA获得超过570个赞
知道小有建树答主
回答量:932
采纳率:52%
帮助的人:758万
展开全部
!!!
用 IndexOf / LastIndexOf

反向搜索也许,GetCharAt(int index) 之类的,从字符串长度-1位置开始检索,每次索引减一
看这个char是不是 '\\',就能确定位置了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心狂不在
2013-09-11
知道答主
回答量:8
采纳率:0%
帮助的人:2.7万
展开全部
使用一个while循环从字符串后面往前找找到第一个/,然后记住位置,往后拷贝字符串就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PCFAN9999
2013-09-11 · TA获得超过3683个赞
知道小有建树答主
回答量:1553
采纳率:50%
帮助的人:500万
展开全部
int p=s.Length-1;
while (p>=0 && s[p]!='\') p--;

if (p>-1) path=s.Substring(p, s.Length-p); // 123\abc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式