#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//Strstr函数
char* Strstr(const char* str1, const char* str2){
char* point1;
char* point2;
assert(str1 != NULL && str2 != NULL); //断言限定str1和str2不为空
point1 = str1; //point1指向str1
point2 = str2; //point2指向srt2
while (*str1 != '\0'){ //当str1的指向内容不为'\0'
if (*point1 == *point2 && point2 != '\0'){
//若point1和point2指向的内容相同,且point2指向的内容不为'\0'
point1++; //point1向后移
point2++; //point2向后移
}
else if (*point2 == '\0'){ //若point2的指向内容为'\0'
break; //跳出循环
}
else{ //若point1和point2指向的内容不相等
str1++; //str1向后移
point1 = str1; //point1指向str1
point2 = str2; //point2指向str2
}
}
return str1;
}
//主函数
int main(){
char str1[] = "i am a student";
char str2[] = "s";
char* str3 = Strstr(str1, str2); //用str3保存函数调用的返回值
printf("%s\n", str3); //打印输出结果
system("pause");
return 0;
}
模拟实现strstr
最新推荐文章于 2022-07-14 17:34:57 发布