![]() |
#2
流年!2013-11-25 17:20
#include"stdio.h"
#include"string.h" #include"stdlib.h" #define maxsize 1024*32 #include <Windows.h> int strindex(char *s,char *t) //查询功能 { int i,j,k=0,len_s,len_t,num; i=0; j=0; len_s=strlen(s); len_t=strlen(t); for(i=0;i<len_s;i++) { if(s[i]==t[j]) j++; else j=0; if(j==len_t) { k++; j=0; } } return k; } void readfile(char *a) //读取文件功能 { FILE *fp; if((fp=fopen("../abc.txt","r"))==NULL) printf("cannot open the file!"); char ch; int i=0; while((ch=getc(fp))!=-1) a[i++]=ch; a[i]='\0'; fclose(fp); } void writefile(char *s,char *p,char *t) //替换功能 { int i,j,k=0,len_s,len_p,len_t,num; i=0; j=0; len_s=strlen(s); len_p=strlen(p); len_t=strlen(t); for(i=0;i<len_s;i++) { if(s[i]==t[j]) { //s[i]=p[j]; //将查到的部分替换掉 j++; } else j=0; if(j==len_t) { for(int m=len_t ,n=0;m>0;m--) { s[i-m+1]=p[n]; } k++; j=0; } } } void main() { printf("**************欢迎使用文本编辑器**************\n"); int i; char s[maxsize],t[48],p[maxsize]; char W; readfile(s); //getchar(); //Sleep(1000); printf("文本内容:\n"); printf("----------------------------------------\n"); printf("%s\n",s); printf("----------------------------------------\n"); printf("请输入需要查询的内容:"); scanf("%s",t); strcpy(t,"123"); i=strindex(s,t); if(i==0) printf("很抱歉,文本中没有您需要查找的内容!\n"); else { printf("已完成对文本的搜索,共有%d处被找到!\n",i); printf("是否需要替换所查询的内容?(Y/N):"); scanf("%c",&W); scanf("%c",&W); if(W=='Y' || W=='y') { printf("替换为:"); scanf("%s",p); writefile(s,p,t); printf("替换成功!\n替换后的文本内容:\n"); printf("----------------------------------------\n"); printf("%s\n",s); printf("----------------------------------------\n"); } } printf("**************欢迎下次继续使用!**************\n"); //Sleep(10000); } |
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
[ 本帖最后由 messilxs 于 2013-11-23 23:06 编辑 ]