C语言中的strstr函数用来查找子串,找到返回首字符的地址,找不到返回空指针。
使用:
#include<string.h>
#include<stdio.h>
int main()
{
char *p1 = "abcdef";
char *p2 = "def";
//找不到返回一个空指针 找到返回d的位置
char *ret = strstr(p1, p2);//在p1指向的字符串里查找是否存在p2指向的字符串
if (ret == NULL)
{
printf("子串不存在\n");
}
else
{
printf("%s\n", ret);//ret本身存储的值不是地址 所以无需解引用就可使用
//例如 p1先被赋值为"abcdef" 但p1指针指向"abcdef"中a的地址 所引用以p1无需解引用
}
return 0;
}
模拟实现:
抽象图解:
实现代码:
//查找字符串函数strstr
//char* strstr(const char* string, const char* strCharSet);
//NULL - 指的是空指针
//NUL/Null - 指的是'\0'
//传过来俩个字符地址 拿字符型指针接收, 由于不会改变原来的字符串 加上const 返回的也是地址 所以返回类型为