我正在尝试将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;
}
答案 0 :(得分:4)
最后两个案例在strstr
和str1
上调用str3
(不 str2
)。因此,他们在"brush"
中寻找"toothpaste"
,反之亦然。