我有一个通过 curl 检索到的 HTML 文件,我想在文件中找到某些字符串,以便分析是否收到了预期的响应。
这是我用来搜索字符串的函数:
int find_str(FILE *infile, char *str)
{
char tmp[512];
while(fgets(tmp, sizeof(tmp), infile) != NULL)
{
if (strstr(tmp, str) != NULL)
{
printf("found %s in file\n", str);
return 1;
}
}
fprintf(stderr, "Couldn't Find %s in file!\n", str);
return 0;
}
它被称为如下:
if(find_str(html_file, "<h1>Hello World</h1>") == 1)
{ ... }
首先,即使字符串存在,也永远找不到该字符串。其次,如果第一个 if 语句失败,则在另一个 if 语句中调用此函数,但是在调试器中观察执行时,它完全跳过了 while 循环。没有给出垃圾值。如果我观察 tmp 数组,这些值似乎是正常的,尽管它们似乎已被编码。