Advertisement

strstr算法实现

阅读量:

通过分析C语言库函数strstr的具体实现方式,有助于增强对字符串操作及指针机制的掌握程度。

函数定义:

复制代码
    char * strstr (const char *s1, const char *s2)
    
    AI写代码cpp

可以设想一种嵌套循环的查找方式:

  • 版本一:

外层循环的作用是确定s1中的起始位置,当内层循环未能完成匹配时,外层循环的指针将向前移动一位,并再次借助内层循环进行判断。

一旦内层循环检测到字符相等,便会持续比较后续字符,直至抵达s2子串的末尾。若此时p2指针已到达s2的末尾,则表示匹配成功。若在比较过程中发现不一致的字符,则终止内层循环,并从s1的下一个位置重新开始比较。

复制代码
 #define NUL '\0'

    
 char *my_strstr(char const * s1, char const *s2) {
    
 	if (*s2 == NUL)
    
 		return  s1;
    
     while(*s1 != NUL) {
    
     char * p1 = s1;
    
     char * p2 = s2;
    
  
    
     while(*p2 != NUL) {
    
         printf("p1: %c,

全部评论 (0)

还没有任何评论哟~