模拟实现strstr:
在系统库函数中,存在strstr函数,它用于查找子字符串。它的函数原型为:
char *strstr( const char *string, const char *strCharSet );
这个函数中是要从*string中查找*strCharSet子字符串。因为只是查找,这两个字符串都不用发生改变,所以将他们声明为常量字符串。
模拟实现strstr:
#include<stdio.h> #include<stdlib.h> char *my_strstr(const char *str1, const char *str2)//模拟实现strstr函数 { char *p1 = NULL; char *p2 = NULL; char *ptr = str1; while (*ptr) { p1 = ptr; p2 = str2; while (*p1 == *p2) { p1++; p2++; if (*p2 == ‘\0‘) { return ptr;//此时ptr的首地址就是要查找的子字符串在的位置 } } ptr++;//上面没找到,使ptr指向下一个位置继续寻找 } return NULL; } int main() { char arr[20] = "abcdef"; char *p = "def"; char *ch = my_strstr(arr, p);//查找字符串函数 if (ch != NULL) { printf("%p\n", ch);//找到并输出找到的字符串的地址 printf("%s\n", ch);//输出字符串 } else { printf("not exist\n");//没找到 } system("pause"); return 0; }
本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1716818
原文地址:http://jiazhenzhen.blog.51cto.com/10781724/1716818