我试图在一个更大的项目中使用 C 中的 strstr 函数,但无法让它工作,所以我形成了一个小测试文件来尝试更好地学习它,唯一的问题是结果不是我想要的预期的。有人可以根据我拥有的这个 c 文件向我解释一下,strstr 应该为我返回什么,以及我如何错误地使用它吗?当我运行这个程序时,它对于 strstr 的所有使用都返回 NULL,我期望的是它对于前两个返回 NULL,但对于后两个之一(我不知道两者)它应该打印字符串“brush”。我做错了什么或者期待错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char str1[11]="toothpaste";
char str2[11]="toothbrush";
char str3[6]="brush";
char str4[6]="paste";
printf("\n\nstr1=%s",str1);
printf("\nstr2=%s",str2);
printf("\nstr3=%s",str3);
printf("\nstr4=%s",str4);
printf("\n\nResult of strstr(1,2) is %s",strstr(str1,str2));
printf("\nResult of strstr(2,1) is %s",strstr(str2,str1));
printf("\nResults of strstr(2,3) is %s",strstr(str1,str3));
printf("\nResults of strstr(3,2) is %s\n\n",strstr(str3,str1));
return 0;
}
最佳答案
最后两种情况在 str1
和 str3
上调用 strstr
(不 str2
>)。因此,他们在“toothpaste”中寻找“brush”,反之亦然。
关于c - 寻求更好地理解 C 中的 strstr 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22159091/