求助那位大哥大姐帮帮忙忙啊
我希望哪位大神帮帮忙,我刚刚学习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);
}