# include & ltstdlib.h & gt
#定義大小20 /*查找單詞字符並輸入小於20的替換單詞*/
#定義MAXLEN 10000 /*文章字符不超過10000 */
int main(void)
{
FILE * fp
int i,j;
int標誌;/*用於標記匹配的單詞*/
int計數標誌;/*用於檢查匹配計數*/
int countOne = 0;/*記錄未更改文章中的字符數*/
int count two = 0;/*記錄已更改文章中的字符數*/
char關鍵字[大小];/*查找單詞*/
char copy words[SIZE];/*替換單詞*/
char strOne[MAXLEN];/*將未更改文章的所有字符存儲在其中*/
char strTwo[MAXLEN];/*將修改後的文章的所有字符存儲在其中*/
Printf("請輸入要查找的單詞:");
獲取(關鍵字);
Printf("請輸入要替換的單詞:");
gets(copy words);
if(null = =(FP = fopen(" E:\ \ C+\ \ 123 . txt "," r ")/* Read file */
{
Printf("文件無法打開!\ n ");
退出(0);
}
//測試代碼錯誤。
Printf("打開成功!\ n ");
/*while(!Feof(fp))//讀取文件
{
//strOne[count one++]= fgetc(FP);
putchar(fgetc(FP));//用於測試
count one++;
}
printf(" \ n ");
*/
而(!Feof(fp))/*讀取文件*/
{
strOne[countOne]= fgetc(FP);
count one++;
}
printf(" \ n ");
//用於測試
countOne-;/*減去最後壹個文件結束字符*/
Printf("文章未更改時的字符數為%d!\n”,count one);?//用於測試和顯示字符數。
/*
for(I = 0;我& ltcountOnei++)?//測試字符是否寫入數組。
{
printf("%c ",strOne[I]);
}
*/
for(I = 0;我& ltcountOnei++)
{
If (keywords [0] = = strong [I])/*判斷搜索詞的第壹個字符是否匹配*/
{
if((' ' = = strong[I-1])| |(' \ n ' = = strong[I-1])| |(0 = = I))/* 1。檢查單詞*/前的字符
{
flag = 1;
count flag = I+1;
for(j = 1;關鍵詞[j]!='\0';j++)
{
if(關鍵詞[j]!= strOne[countFlag++])/*+])/*是否匹配*/
{
flag = 0;
打破;
}
}
if((' ' = = strong[count flag])| |(' \ n ' = = strong[count flag])| |(EOF = = strong[count flag])/* 2。檢查單詞*/後的壹個字符
{
If (1 == flag)/*如果匹配,則復制*/
{
I = count flag-1;
for(j = 0;字帖[j]!='\0';j++)
{
strTwo[count two ++]= copy words[j];
}
}
}
Else/*另壹個3*/
{
strTwo[count two ++]= strOne[I];
}
}
Else/*另壹個2 */
{
strTwo[count two ++]= strOne[I];
}
}
Else/*另壹個1*/
{
strTwo[count two ++]= strOne[I];
}
}
fclose(FP);
if(null = =(FP = fopen(" E:\ \ C+\ \ 123 . txt "," w ")/*寫入文件*/
{
Printf("文件無法打開!\ n ");
退出(1);
}
for(I = 0;我& lt數數二;I++)/*寫入文件*/
{
fputc(strTwo[i],FP);
}
Printf("寫入成功!\ n ");
fclose(FP);
系統(“暫停”);
返回0;
}