简单的行编辑器源程序.docx
- 文档编号:5144776
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:12
- 大小:15.79KB
简单的行编辑器源程序.docx
《简单的行编辑器源程序.docx》由会员分享,可在线阅读,更多相关《简单的行编辑器源程序.docx(12页珍藏版)》请在冰点文库上搜索。
简单的行编辑器源程序
SANYGROUPsystemofficeroom【SANYUA16H-SANYHUASANYUA8Q8-SANYUA1688】
简单的行编辑器源程序
#include
#include
#include
#defineMAXL100/*最大行数*/
#defineMAXC80/*每行最大字符数*/
#definetrue1
charlines[MAXL][MAXC]={0};
voidedit(char(*lines)[MAXC]);
voidmodify(char(*lines)[MAXC]);
voidmydelete(char(*lines)[MAXC]);
voidsearch(char(*lines)[MAXC]);
voidreplace(char(*lines)[MAXC]);
voidsavetofile(char(*lines)[MAXC]);
voidmyexit(char(*lines)[MAXC]);
voidmenu(char(*lines)[MAXC]){
intselection;
do{
system("cls");
puts("\t\t***********************MUNU******************\n\n");
puts("\t\t1.Editnewline");
puts("\t\t2.Replaceline");
puts("\t\t3.Deleteline");
puts("\t\t4.Searchline");
puts("\t\t5.Modifydata");
puts("\t\t6.Save");
puts("\t\t0.Exit");
puts("\n\n\t\t********************************************\n");
printf("Pleaseselectanumber:
[]\b\b");
do{
scanf("%d",&selection);
if(selection<0||selection>6){
printf("Invalidselection!
Pleasetryagain");
printf("andselectanumber:
[]\b\b\n");
}
elsebreak;
}while(true);
switch(selection)
{
case1:
edit(lines);break;
case5:
modify(lines);break;
case3:
mydelete(lines);break;
case4:
search(lines);break;
case2:
replace(lines);break;
case6:
savetofile(lines);break;
case0:
myexit(lines);
}
}while(true);
}
intreadfile(char(*lines)[MAXC],FILE*pfile){
inti=0;
while(!
feof(pfile)){
fgets(lines[i],MAXC,pfile);
/*if(!
strstr(lines[i],"\n"))return1;*/
i;
}
return0;
}
/************************************主函数**********************************************************/
main()
{FILE*pfile;
pfile=fopen("Linedit.txt","a");
readfile(lines,pfile);
fclose(pfile);
menu(lines);
}
/*****************************编辑*************************************/
voidedit(char(*lines)[MAXC])
{
inti,index;
/*system("cls");*/
clrscr();
for(i=0,index=0;i if(lines[i][0]! =0) { index; printf("%d: %s",index,lines[i]); } printf("\n\nPleasetypeanewline: \n"); fflush(stdin); for(i=0;i { if(lines[i][0]=='\0') {/*每行第一个字符作为标志位空行可写入*/ fgets(lines[i],MAXC,stdin); return; } else continue; } } /********************************替换******************************************/ voidreplace(char(*lines)[MAXC]) { inti; intindline; intj,k; do { /*system("cls");*/ clrscr(); /*打印所有*/ for(i=0;i if(lines[i][0]! =0) printf("%d: %s",i1,lines[i]); printf("\n\nWhichlinedoyouprefertoreplace? (Toquitpleaseinput0)[]\b\b"); scanf("%d",&indline); if(indline==0) return; else { for(j=0,k=0;j { if(lines[j][0]! =0)k; if(k==indline) { printf("\n\nThelinetobereplacedis: \n%s",lines[j]); printf("Pleasetypeyournewline: \n"); memset(lines[j],0,MAXC); fflush(stdin); fgets(lines[j],MAXC,stdin); break; } } } }while(true); } /*****************************************删除******************************************/ voidmydelete(char(*lines)[MAXC]) { inti,index; intindline; intj,k; do { /*system("cls");*/ clrscr(); for(i=0,index=0;i if(lines[i][0]! =0) { index; printf("%d: %s",index,lines[i]); } printf("\n\nWhichlinedoyouprefertodelete? (Toquitpleaseinput0)[]\b\b"); scanf("%d",&indline); if(indline==0)return; else for(j=0,k=0;j { if(lines[j][0]! =0)k; if(k==indline) { printf("Thelinetobedeletedis: \n%s\n",lines[j]); memset(lines[j],0,MAXC); system("pause"); break; } } }while(true); } /*****************************************查找****************************************************/ voidsearch(char(*lines)[MAXC]) { inti,index; intindline; intj,k; do { /*system("cls");*/ clrscr(); for(i=0,index=0;i if(lines[i][0]! =0) { index; printf("%d: %s",index,lines[i]); } printf("\n\nWhichlinedoyouwanttosearch? (Toquitpleaseinput0)[]\b\b"); scanf("%d",&indline); if(indline==0)return; else for(j=0,k=0;j { if(lines[j][0]! =0)k; if(k==indline) { printf("Thelinetobesearchedis: \n%s\n",lines[j]); system("pause"); break; } } }while(true); } /*******************************************修改*********************************************/ /*在sSrc中用sReplaceStr替换sMatchStr*/ intmodifystr(char*sSrc,char*sMatchStr,char*sReplaceStr) { intStringLen; charcaNewString[MAXC]; char*FindPos=strstr(sSrc,sMatchStr); if((! FindPos)||(! sMatchStr)) return-1; while(FindPos) { memset(caNewString,0,sizeof(caNewString)); StringLen=FindPos-sSrc; strncpy(caNewString,sSrc,StringLen); strcat(caNewString,sReplaceStr); strcat(caNewString,FindPosstrlen(sMatchStr)); strcpy(sSrc,caNewString); FindPos=strstr(sSrc,sMatchStr); } return0; } voidmodify(char(*lines)[MAXC]) { inti,indline; charbuf[MAXC]; intk; intj; char*token=0; charsearch[MAXC],replace[MAXC]; do { /*system("cls");*/ clrscr(); for(i=0;i if(lines[i][0]! ='\0') printf("%d: %s",i1,lines[i]); printf("\n\nWhichlinedoyouprefertomodify? (Toquitpleaseinput0)[]\b\b"); scanf("%d",&indline); if(indline==0) return; else { for(j=0,k=0;j { if(lines[j][0]! =0)k; if(k==indline) { printf("\n\nThelinetobereplacedis: \n%s",lines[j]); printf("\n\nInputthesearchstringandthereplace");printf("(Toquitpleaseinputq): "); memset(buf,0,MAXC); fflush(stdin); fgets(buf,MAXC,stdin); k=strlen(buf)-1; if(buf[k]=='\n')buf[k]='\0'; if(*buf=='q'&&*(buf1)=='\0')return; memset(search,0,MAXC); memset(replace,0,MAXC); token=strtok(buf,""); strcpy(search,token); token=strtok(NULL,""); strcpy(replace,token); modifystr(lines[j],search,replace); break; } } } }while(true); } voidsavetofile(char(*lines)[MAXC]) { FILE*pfile; inti; pfile=fopen("Linedit.txt","w"); for(i=0;i if(lines[i][0]! ='\0') fputs(lines[i],pfile); fclose(pfile); printf("\nThelineshasbeensaved.\n"); system("pause"); } voidmyexit(char(*lines)[MAXC]) { charc; printf("Savethelinestothefile? (y/n)"); fflush(stdin); c=getchar(); if(c=='n')exit (1); savetofile(lines); exit (1); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 编辑器 源程序