c语言从文件中查找字符串

c语言从文件中查找字符串,第1张

c语言从文件中查找字符串的方法。

如下参考:

1.打开python命令窗口,定义并分配字符串变量s1。

2.调用字符串中的count方法degree来查找字符#在s1中出现的次数。

3.除了第一个参数外,count()方法还可以有第二个参数来指示从何处开始搜索。

4.在count方法中,还可以在开始位置和结束位置之间添加第三个参数,即结束位置。

5.如果要查找的子字符串不在字符串中,则返回的结果为0。

6.最后,在count()方法中添加所有三个参数来查找对应的字符串。

用strstr这个函数\r\n\r\n包含文件:string.h\r\n函数名: strstr \r\n函数原型:extern char *strstr(char *str1, char *str2)\r\n功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。\r\n返回值:返回该位置的指针,如找不到,返回空指针。\r\n\r\n源代码:\r\n\r\n#include\r\n#include//调用string.h中的strstr函数\r\nvoid main(){\r\nchar ch1[255]="abcde"\r\nchar ch2[100]="cd"\r\nchar* ch//用于接受返回值\r\nif((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串\r\nprintf("-1\n")\r\n}else{//说明找到了那个字符串\r\nprintf("%d\n",ch-ch1+1)//cde的地址减去abcde的地址+1\r\n} \r\n}

这需要使用匹配算法来实现,具体参考代码如下:

#include <stdio.h>

#include <stdlib.h>

#define stringSize(string) (sizeof(string) * sizeof(char))

void contains(char *, int, FILE *)

int main(void) {

FILE * fp

char * fileName = "a.txt"

char str[] = "beautiful"

if((fp = fopen(fileName, "rb")) == 0) {

printf("Can't open %s, program will to exit.", fileName)

exit(1)

}

contains(str, stringSize(str), fp)

fclose(fp)

return 0

}

void contains(char * string, int stringSize, FILE * fp) {

int i = 0, j, end

char * part = (char *)calloc(stringSize, sizeof(char))

fseek(fp, 0L, SEEK_END)

end = ftell(fp) - stringSize + 2

while(i <end) {

j = 0

fseek(fp, (long)i++, SEEK_SET)

fgets(part, stringSize, fp)

while(*part) {

if(*string == *part) {

j++

string++

part++

continue

}

break

}

if(j == stringSize - 1) {

printf("OK\n")

break

} else {

string -= j

part -= j

}

}

free(part)

}

注意事项:

1、如果程序输出 OK 则代表这个文件中包含该字符串,无任何输出则代表不能匹配该字符串。

2、如果一个字符串在文件中是以换行分隔的,则不能匹配。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7928352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存