C 语言 strstr 函数出错 段错误

2024-12-21 22:56:35
推荐回答(2个)
回答1:

//.......p1也行*p1也行
for (i = 0; *p1; i++) {
p1 = strstr(p, "href=");
if (p1 == NULL)
fprintf(stderr, "Failed to find item %d\n", i);
//如果for(int = 0; p1;i++)的话,且p1==NULL那么下列语句一样会被执行
p1 += 7;
p2 = strstr(p1, "target");
if (p2 == NULL)
fprintf(stderr, "Failed to find target %d\n", i);
p2 -= 2;
//这什么意思?如果i大于9你的程序到这会崩溃
strncpy(item[i], p1, abs(p1-p2));
p = p1;
}

回答2:

注意在使用strstr函数时,对参数是有限制的;如果有参数为null,则必然出现segment error。

你的程序就是出现了此情况。