c - 寻求更好地理解 C 中的 strstr 函数

标签 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;
}

最佳答案

最后两种情况在 str1str3 上调用 strstr( str2 >)。因此,他们在“toothpaste”中寻找“brush”,反之亦然。

关于c - 寻求更好地理解 C 中的 strstr 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22159091/

相关文章:

java - Android:将字符串按 "\n"拆分为字符串而不是新行

c++ - 如何检查 C++ 字符串是否为 int?

c++ - strstr 在 codeforces 上的 C++ 4.7 中不起作用

php - 有没有PHP函数可以找到中间字符串?

c - 如何使用 C 在没有互联网连接、没有 eth0 且没有任何硬编码常量的情况下获取我的外部 ip(主接口(interface))

c - 输入非 ASCII 字符到 scanf ("%s")

c - realloc作业帮助

c - 什么??!??!运算符在 C 中做什么?

ruby - 在 Ruby 中的不同数组的特定位置从单个字符创建数组

c - 枚举数组时遇到问题