gpt4 book ai didi

c - 从文件中查找子字符串索引的程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:01 24 4
gpt4 key购买 nike

在将文件复制到数组后,我试图找到文件中存在子字符串的索引

我怀疑这里面有匹配地址的东西。如果是,还有哪些其他选择?

    #include<stdio.h>
#include<string.h>
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[1], "r");
int len, i=0, c=0;
fseek(fp, 0, SEEK_END);
len = ftell(fp); //number of characters in file
rewind(fp);
char ch, arr[len], *p, *q;
while((ch = fgetc(fp)) != EOF ) //copy file into arr[len]
{
arr[i] = ch;
i++;
}
rewind(fp);
char a[200];

while((fgets(a, 200, fp))) //a contains line from fp
{
q=a; //q pointing at base address of a
if((p = strstr(a, arr))!=NULL)
{
while(q!=p)
{
c++;
q++;
}
printf("c >> %d\n", c);
}
}
}

即使文件中存在子字符串,输出也不会打印任何内容,我希望 c 打印数组的索引。

最佳答案

你错过了参数的顺序(除了所有其他问题):

const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );

Locate substring
Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1.

因此,无论您在变量 a 中保存什么,您都永远无法找到文件的全部内容。

关于c - 从文件中查找子字符串索引的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com