原创C语言程式《文字替换器》
《文字替换器》
作者:yayapipi
功能简介:
可以把文章里的某个字替换成别的字,比如apple,换成banana,
程式会一次过把文章里所有apple的单字换成banana,最后可以新存档案。
(中文字也可以替换)
用法:
已经用code:block编译生成
把程式.exe 档放在你和你要更换的文字档同一个文件夹打开即可。
环境:
Window,Unix可用
(本来是在Unix上打的,结果打出来居然不兼容。。。这不科学,然后我就直接在Window上改了一下)
程式:
基本的思路就是把一行文字切开,切成三个部分,用strstr来比较,在关键字前面的切一个,关键字切一个,剩下的切一个,然后替换关键字后
再把全部组合起来,继续下一个替换这样,具体思路可以看看程式码。不知道其他替换文字的程式是怎么写的,可能也有其他更简单的写法,大家知道的话也告诉我吧
程式很简单,分享出来大家一起学习
源代码分享:
程序代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> #define PatMax 100 //Pattern Max Lengths #define MaxLine 1000 //Total line Lengths //Function Declare int main(){ //Patten String char pat1[PatMax]; char pat2[PatMax]; //Data Store char line[MaxLine]; char output[MaxLine][MaxLine]; //To Save Buff Data char best[MaxLine]; char buff[MaxLine]; //Pointer Declare char *run; char *save; //Variable int x,y,z; //File Open FILE *fl; char name[100]; printf("...Superb Word RePlace System...\n"); printf("Enter file name:\n"); scanf("%s",name); fl=fopen(name,"r"); //Pattern Setting printf("Word Original:\n"); scanf(" %s",pat1); printf("Word Change To:\n"); scanf(" %s",pat2); //Main Program printf("Your OutPut:\n"); x=y=z=0; y=1; while(fgets(line,MaxLine,fl)){ strcpy(buff,line); while(run=strstr(buff,pat1)){ save = buff; for(x=0;x<=MaxLine;x++){ best[x] = '\0'; } for(x=0;x<run-save;x++){ best[x]=buff[x]; } strcat(output[y],best); strcat(output[y],pat2); strcpy(buff,run+strlen(pat1)); } strcat(output[y],buff); y++; } for(z=1;z<y;z++){ printf("%s",output[z]); } printf("\nSave File As :\n"); scanf("%s",name); fclose(fl); fopen(name,"w"); for(z=0;z<y;z++){ fprintf(fl,"%s",output[z]); } fclose(fl); printf("File Saved"); }
也可以下载程式来用:
replacer.zip
(10.4 KB)