📄 5-5.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FALSE 0
#define TRUE 1
//僼傽僀儖抲姺
main () {
FILE *fp; //擖椡僼傽僀儖偺僼傽僀儖億僀儞僞
char filename[256]; //擖椡僼傽僀儖柤
FILE *outfp; //弌椡僼傽僀儖偺僼傽僀儖億僀儞僞
char outfilename[256]; //弌椡僼傽僀儖柤
char key[128]; //専嶕暥帤楍
char str[128]; //抲姺暥帤楍
char c;
int p; //専嶕暥帤楍偑堦抳偟側偐偭偨応崌偵棙梡偡傞曄悢
int keylen; //専嶕暥帤楍偺挿偝
int i = 0;
int search = FALSE; //専嶕拞僼儔僌
int count = 0; //抲姺傪峴偭偨悢
//僼傽僀儖柤丒専嶕暥帤楍丒抲姺暥帤楍偺寛掕
printf("僼傽僀儖柤傪擖椡偟偰壓偝偄 > ");
scanf("%s", filename);
printf("専嶕暥帤楍 > ");
scanf("%s", key);
keylen = strlen(key);
printf("抲姺暥帤楍 > ");
scanf("%s", str);
//擖椡僼傽僀儖傪僆乕僾儞偡傞
if((fp = fopen(filename, "r")) == NULL) {
printf("僼傽僀儖僆乕僾儞僄儔乕\n");
exit(1);
}
//弌椡僼傽僀儖傪僆乕僾儞偡傞
strcpy(outfilename, filename);
strcat(outfilename, "_");
if((outfp = fopen(outfilename, "w")) == NULL) {
printf("僼傽僀儖僆乕僾儞僄儔乕\n");
exit(1);
}
//暥帤楍偺抲姺
while((c = fgetc(fp)) != EOF){
if(search) { //専嶕拞
if(c != key[i]) {
search = FALSE;
//崱傑偱偺専嶕暥帤楍偺弌椡
for(p = 0; p < i; p++) { fputc(key[p], outfp); }
fputc(c, outfp);
i = 0;
} else { i++; }
} else { //専嶕拞偱偼側偄
if(c == key[i]) { search = TRUE; i++; }
else { fputc(c, outfp); }
}
//専嶕暥帤楍偲慡偰堦抳偟偨応崌
if(keylen == i) {
count++;
fputs(str, outfp); //抲姺暥帤楍偺弌椡
search = FALSE;
i = 0;
}
}
fclose(fp);
fclose(outfp);
printf("弌尰夞悢丂%d\n", count);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -