① C语言实现汉字匹配查找 并替换
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
typedefstructlist
{
charname[10];
}FOUND;
intmain()
{
FOUNDaa[100];
strcpy(aa[0].name,"张三");
strcpy(aa[1].name,"李四");
strcpy(aa[2].name,"王五");
inti;
for(i=0;i<=2;i++)
{
printf("%d%s ",i+1,aa[i].name);
}
printf("请输入你要替换的名字: ");
charas[10];
gets(as);
charsd[10];
printf("请输入替换以后的名字: ");
gets(sd);
intk;
for(k=0;k<=2;k++)
{
if(strcmp(as,aa[k].name)==0)
{
strcpy(aa[k].name,sd);
break;
}
}
for(i=0;i<=2;i++)
{
printf("%d%s ",i+1,aa[i].name);
}
return0;
}
② C语言中如何在文件内查找关键字并替换
获取关键字,得到它的长度,然后从操作文件中读取这么长的字符串,进行比较,把
文件指针
指向下一个字符(注意,要一个字符一个字符的向下进行),这样就可以把需要的关键字找出来,如果想替换的话,把读取出的数组改成想要得再写入,最后别忘记fclose();
③ C语言文本文件中字符串的查找与替换。
#include<stdio.h>
#include<string.h>
#include<math.h>
intmain()
{
charfilename[10],string1[15],string2[15],line[100];
FILE*pfile=NULL;
scanf("%s%s%s",filename,string1,string2);
pfile=fopen(filename,"r+");
if(!pfile)
{
perror("文件不存在");
return1;
}
printf("将把文件%s中字符串%s替换成%s ",filename,string1,string2);
while(!feof(pfile))
{
char*index=NULL;
fgets(line,100,pfile);
index=strstr(line,string1);
if(index)
{
intd2=strlen(string2);
intd1=strlen(string1);
printf("%s中有%s ",line,string1);
if(d1!=d2)
{
memmove(
index+d1+d2-d1,
index+d1,
strlen(line));
}
memcpy(index,string2,strlen(string2));
fseek(pfile,-strlen(line)+d2-d1,SEEK_CUR);
fputs(line,pfile);
fflush(pfile);
}
}
fclose(pfile);
return0;
}
④ C语言如何从文件中查找指定的字符,然后替换它
1、打开文件,遍历文件内容然后一个一个匹配查找并替换,最后再重新写入文件当中。
2、例程:
#include <stdio.h>
int main()
{
FILE *fp;
char filename[100];
printf("请输入文件名:\n");
gets(filename);
fp=fopen(filename,"r");
char c,x,flag=0;
printf("请输入要查找的字符:\n");
scanf("%c",&x);
while(fscanf(fp,"%c",&c)!=EOF)
{
if(c==x)
{
flag=1;
break;
}
}
if(flag==1)
printf("文件中含有字符%c\n",x);
else
printf("文件中没有字符%c\n",x);
return 0;
}
⑤ 用C语言实现文件的查找与替换
#include"stdio.h"
#include"stdlib.h"
main()
{
FILE *fp;
char str[80],*p,*head;
int n=0;
long filelen;
loop1: printf("请输入您要用于操作的文件名及其完整路径:\n");
gets(str);
fp=fopen(str,"rb+");
if(fp==NULL)
{
printf("找不到指定文件,要指定新文件吗?(y=是的,要指定新文件\telse=不用了,退出程序)\t");
gets(str);
if((char)tolower((int)str[0])=='y')goto loop1;
else exit(0);
}
printf("请输入您要查找并替换的字符(如果输入的字符数量大于1本程序会自动舍去多余的部分)\n");
gets(str);
printf("请输入您要将找到的字符或字符串替换为的字符(自动舍去多余部分)\n");
gets(&str[1]);
fseek(fp,0L,2);
filelen=ftell(fp);
fseek(fp,0L,0);
head=(char *)malloc(filelen);
fread(head,filelen,1,fp);
for(p=head;p<head+filelen/1L;p++)if(*p==str[0]){*p=str[1];n++;}
fseek(fp,0L,0);
fwrite(head,filelen,1,fp);
fclose(fp);
printf("替换已经完成,共替换%d处\n",n);
}