Board logo

标题: [讨论]一个非常简单的C问题 [打印本页]

作者: 无条件为你    时间: 2006-4-22 10:58     标题: [讨论]一个非常简单的C问题

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

     言下之意,就是去掉路径后的文件名。有几种方法实现?越简越好!
作者: zwzzj    时间: 2006-4-22 22:31     标题: [讨论]一个非常简单的C问题

int len = strlen(str);
for(int i = len-1; str != ';\'; ;i--)  ;
char filename[MAX_PATH];
strcpy(filename,(str+i));
puts(filename);
这是一种方法.
作者: 无条件为你    时间: 2006-4-23 02:32     标题: [讨论]一个非常简单的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< 作者: 无条件为你    时间: 2006-4-23 02:46     标题: [讨论]一个非常简单的C问题

2楼的朋友,你的程序我又细看了一下,发现两点错误:
第一:第二行应该用“ ';\\'; ”,不应该写成“ ';\'; ”,因为“ \'; ”表示另一个转义字符。
第二:strcpy(filename,(str+i));这句错了,应该改为:strcpy(filename,(str+i+1));
您写程序有点过于马虎了,可能是太匆忙吧,不过你的算法思路我是看明白了,重要的是思路,呵呵,再次谢谢您!
作者: 漂泊    时间: 2006-4-26 13:02     标题: [讨论]一个非常简单的C问题

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

作者: Frank20    时间: 2006-5-2 15:50     标题: [讨论]一个非常简单的C问题

看了好几篇楼主的贴子,感觉是个超级高手哦,能收我么?我也想学C++
QQ79341258
作者: 无条件为你    时间: 2006-5-2 17:52     标题: [讨论]一个非常简单的C问题

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

还行啊,希望我也成为你们这样的超人
作者: 流氓阿三    时间: 2006-5-4 19:08     标题: [讨论]一个非常简单的C问题

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




欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2