① 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);
}