用C语言编写文本检索程序

Python011

用C语言编写文本检索程序,第1张

#include"stdio.h"#include"stdlib.h"main(){ FILE *fp char str[80],*p,*head int n=0 long filelenloop1: 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=headp<head+filelen/1Lp++)if(*p==str[0]){*p=str[1]n++} fseek(fp,0L,0) fwrite(head,filelen,1,fp) fclose(fp) printf("替换已经完成,共替换%d处\n",n)}

C语言中的标准函数库中的strchr()函数可以实现查找字符串中的某个字符。

C语言strchr()函数:

查找某字符在字符串中首次出现的位置

头文件:#include <string.h>

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:

char * strchr (const char *str, int c)

【参数】str 为要查找的字符串,c 为要查找的字符。

strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。