#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(20000);
}
前面的有点问题 strcpy(t,"123");忘了删了