返回列表 发帖

[讨论]一个非常简单的C问题

     写一个子程序,传递给他一个完整的文件名,比如“C:\123\456\852\789\mwy.exe”,函数返回值为:mwy.exe
     再如,传给他一个参数“D:\fafa\rfvjalkf\farfdqa\f.exe”,返回:f.exe

     言下之意,就是去掉路径后的文件名。有几种方法实现?越简越好!

[讨论]一个非常简单的C问题

int len = strlen(str);
for(int i = len-1; str != ';\'; ;i--)  ;
char filename[MAX_PATH];
strcpy(filename,(str+i));
puts(filename);
这是一种方法.

TOP

[讨论]一个非常简单的C问题

感谢楼上的朋友提供,我贴出我的方法: char *mm(char *p) { int i=strlen(strstr(strrev(p),"\\")); return strrev(p)+i; } 这个子程序的最大优点是调用后不破坏原串,调用这个子程序就可以了,例如可以这样调用: void main() { char f[100]="C:\\jf;a\\ecgas\\rea\\456.exe"; cout<

TOP

[讨论]一个非常简单的C问题

2楼的朋友,你的程序我又细看了一下,发现两点错误:
第一:第二行应该用“ ';\\'; ”,不应该写成“ ';\'; ”,因为“ \'; ”表示另一个转义字符。
第二:strcpy(filename,(str+i));这句错了,应该改为:strcpy(filename,(str+i+1));
您写程序有点过于马虎了,可能是太匆忙吧,不过你的算法思路我是看明白了,重要的是思路,呵呵,再次谢谢您!

TOP

[讨论]一个非常简单的C问题

学C语言己经一年了,基础的东西学的错不多了,楼主可否指点一下学语言的心德
提供一些比较好交流平台

TOP

[讨论]一个非常简单的C问题

看了好几篇楼主的贴子,感觉是个超级高手哦,能收我么?我也想学C++
QQ79341258

TOP

[讨论]一个非常简单的C问题

     楼上的两位朋友,如果看得起小弟,不妨加我的QQ335342。我已经很少在此坛发主题贴了。
     感谢楼上的朋友读我的贴子,我不会汇编,所以注定永远只是一个网络新手,您称我为“超级高手”是不是在讽刺我啊?我在另一个论坛发了一个EXE文件就被人反汇编解出了源代码的核心程序段。惭愧啊……

TOP

[讨论]一个非常简单的C问题

还行啊,希望我也成为你们这样的超人

TOP

[讨论]一个非常简单的C问题

我也要跟你学~!!
楼主收我吧!!!

TOP

返回列表 回复 发帖