求助那位大哥大姐帮帮忙忙啊
我希望哪位大神帮帮忙,我刚刚学习C语言,老师布置的作业很让我蒙啊,老师布置作业内容是“怎样变写个程序更改迅雷下载的几十级电视剧名称(就是文件名称和电视剧名称相一致,有些电视剧下载下来带有许多迅雷所带文件后缀)”,
/******************************************** *此程序可批量更改类似“蜗居2009第01集XXx.rmvb”文件名的电视文件 *最近在网下将蜗居下了下来,文件名太长,看得我很不爽,有感而发 *此程序只可更改这种“第“式的电视,更多类型的文件名,请参考后自己思考修改 *********************************************/ #include <stdio.h> #include <string.h> #include <stdlib.h> main() { char oldname[80],oldn[80],newname[40],extension[5],temp[40]; char *d,*o=newname;//指针d指向文件名中“第”的位置 int i,n,count;//count表示电视集数,i表示原文件名中表示集数号码的位数 puts("请输入更改前的文件名:"); gets(oldname); puts("请输入更改后的文件名:"); gets(newname); puts("请输入文件扩展名"); gets(extension); puts("请输入需要修改的文件数:"); scanf("%d",&count); /*确定原文件名中集数号码的位置*/ d=strstr(oldname,"第"); for(i=0,d+=2;*d>='0'&&*d<='9';d++,i++); strcpy(temp,d); d-=i; for(;*o!=0;o++);//使o指向新文件名字符串结尾\0 for(n=1;n<=count;n++) { oldngo(d,i,n,temp); puts(oldname); newgo(o,i,n,extension); puts(newname); if(rename(oldname,newname))printf("%s——更改失败!\n",newname); else printf("%s——更改成功!\n",newname); } puts("全部更改完毕!按任意键退出....."); getch(); } newgo(char *p,int i,int n,char *q) { switch(i) { case 1:sprintf(p,"%d",n);break; case 2:sprintf(p,"%02d",n);break; case 3:sprintf(p,"%03d",n);break; case 4:sprintf(p,"%04d",n);break; default:printf("集数号码位数超出!请修改程序!\n");exit(0); } strcat(p,q); } oldngo(char *p,int i,int n,char *q) { switch(i) { case 1:sprintf(p,"%d",n);break; case 2:sprintf(p,"%02d",n);break; case 3:sprintf(p,"%03d",n);break; case 4:sprintf(p,"%04d",n);break; default:printf("集数号码位数超出!请修改程序!\n");exit(0); } strcat(p,q); }