#include <stdio.h>
#include <string.h>
void putOneByOneP(char *s);
char *strstrM1 (char str[], char mod[]);
char *strstrM2 (char str[], char mod[]);
int main(void)
{
char s[] = "What's your name?";
char s2[] = "name";
putOneByOneP(s);//打印每个字符地址,以便检查strstr()函数是否正确工作
char *p = strstrM2(s, s2);//strstr()函数返回索引,以下校验的结果
if(p != NULL)
printf("%s找到了%s!返回地址%p,存储的是 %c\n", s, s2, p, *p);
else
printf("%s未找到%s!\n",s, s2);
printf("%s", (p != NULL) ? "真的找到了!\n":"真的没找到!\n");//较为简明的检验
return 0;
}
void putOneByOneP(char *s)
{
char *p =s;//最后要用s初始值,所以用p拷贝一份
while (*s != '\0')
{
printf("[%c] %p\n", *s, s);
++s;
}
}
char *strstrM1 (char str[], char mod[])
{
char *s = str, *m = mod;//没必要的城市化,但能明确意图
for (;*str != '\0'; ++str)
{
for (s =
strstr()函数工作原理与自写实现
最新推荐文章于 2024-04-29 20:59:36 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)