希望更好地理解C中的strstr函数

时间:2014-03-03 22:40:14

标签: c string strstr

我正在尝试将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;
}

1 个答案:

答案 0 :(得分:4)

最后两个案例在strstrstr1上调用str3 str2)。因此,他们在"brush"中寻找"toothpaste",反之亦然。