C语言字符串截取

比如这样一首歌:“M:\Mp3\(李圣杰)痴心绝对.wma”,怎样把歌名截取出来?截取后应该为“(李圣杰)痴心绝对”。该程序一定要有通用性,就是说给出任何歌曲的绝对路径都能把歌名截取出来。最近写了个音乐播放器,但是列表显示的是绝对路径,郁闷中。

/*
注意:在C/C++中,'\\'表示反斜线,如果转换前的串中是单写的,则需要手工编辑后再截取
截取前 : M:\Mp3\(李圣杰)痴心绝对.wma
截取后 : (李圣杰)痴心绝对
Press any key to continue
*/
#include <stdio.h>

char *trim(char s[],char t[]) {
int pos,i;
for(i = 0;s[i];++i)
if(s[i] == '\\') pos = i;
pos++;
for(i = pos; s[i] != '.'; ++i)
t[i - pos] = s[i];
t[i - pos] = '\0';
return t;
}

int main() {
char s[] = "M:\\Mp3\\(李圣杰)痴心绝对.wma";
char t[80];
printf("截取前 : %s\n截取后 : %s\n",s,trim(s,t));
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-16
倒数第一个. 和倒数第一个\之间的就是歌名,这样理解应该很容易截取吧?
第2个回答  2012-04-16
应该是你函数用错了,不知道你用什么写的,有些函数得到的是绝对路径,而有些函数得到的是当前路径!
相似回答