资源描述:
《多篇论文的作者索引生成代码(c语言)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、多篇论文的作者索引生成代码(C语言)//@author:YuanJinghua//@version:v1.0//@time:2013/05/18#include#includeconstintAUTHOR_NUM=1000;constintAUTHOR_NAME_LENGTH=100;constintAUTHOR_NAMEs_LENGTH=300;constintFILENAME_LENGTH=50;constintPAGENUMBER_LENGTH=10;constintHINYS_LINE_NUM=8;constintHINTS_LINE_
2、LENGTH=160;constcharHINTS[HINYS_LINE_NUM][HINTS_LINE_LENGTH]={"t@author:YuanJinghuat@version:v1.0t@time:2013/05/18tttALLRIGHTSRESERVED!HINTS:Hint1:该工具用于对多篇文章的作者建立索引.","Hint2:待处理数据保存在txt文件中,如myindexin.txt;处理后数据要保存到txt文件中,如myindexout.txt;","myindexin.txt文件中,每行代表一篇文章的数据,格式为:"
3、姓,名;姓,名;...;姓,名:索引页码",如,Zhang,san;Wang,wu;Li,Yuanyuan:123","表示该篇文章的作者有:Zhang,san;Wang,wu;Li,Yuanyuan,该篇文章的起始页(索引页)为:123","对待处理数据所在文件,必须确保:1.每行无其他多余信息(包括空白字符,如空格,制表符等);2.文件最后留一空行!","myindexout.txt文件中会给出所有作者的索引信息,每行代表一个作者的索引信息,并按字母序升序排列.","如果一个作者出现在篇文章中,则有多个关于该作者的索引,并安文章索引页码升序排列."
4、,"Hint3:该工具能处理的作者总数是1000个(含重复),能处理的文章数是250篇(按每篇文章四位作者计)."};voidmy_hints(void);intmain(intarc,char*arg[]){my_hints();puts("Pressanykeytocontinue");getchar();inti,j,k,t,count,len;//t:存储每篇文章对应页码数长度,count:记录作者名总数,len:暂存每篇文章数据长度charinputfilename[FILENAME_LENGTH]="myindex.txt";charoutputfilename
5、[FILENAME_LENGTH]="myindexout.txt";chartemp[AUTHOR_NAMEs_LENGTH];chartemp1[PAGENUMBER_LENGTH];charallautor[AUTHOR_NUM][AUTHOR_NAME_LENGTH];FILE*inputfp;FILE*outputfp;printf("请输入待处理数据所在的文件名(如myindexin.txt):");scanf("%s",inputfilename);printf("请输入处理后数据所要保存的文件名(如myindexout.txt):");scanf("%s",outp
6、utfilename);//inputfp=fopen(arg[1],"r");//outputfp=fopen(arg[2],"w");inputfp=fopen(inputfilename,"r");outputfp=fopen(outputfilename,"w");k=count=0;while(fgets(temp,AUTHOR_NAMEs_LENGTH,inputfp)!=NULL){len=strlen(temp);//printf("%s,%d",temp,len);for(t=1;temp[len-t]!=':';t++){//提取页码数字,暂存于temp1[]数
7、组中,页码数字是倒序存储temp1[t-1]=temp[len-t];}//对数组temp1[],temp[]整理,便于一下处理temp1[t-1]=' ';temp[len-t]=';';temp[len-t+1]=' ';//printf("%s",temp1);//k=count;//记录由temp[]中数据新获得的首作者的编号for(i=j=0;temp[i]!=' ';i++){//提取temp[]中的所有作者,并保存到allaurhor[][]中if