c语言| |strstr函数的源代码以及自我实现

Posted _YKitty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言| |strstr函数的源代码以及自我实现相关的知识,希望对你有一定的参考价值。

strstr函数


strstr函数:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。


源函数:

#include <stdio.h>

char * __cdecl strstr(const char *str1, const char *str2)

    char *cp = (char *)str1;
    char *s1, *s2;

    if (!*str2)
        return((char *)str1);

    while (*cp)
    
        s1 = cp;
        s2 = (char *)str2;

        while (*s2 && !(*s1 - *s2))
            s1++, s2++;

        if (!*s2)
            return(cp);

        cp++;
    

    return(NULL);


int main(int argc, char *argv[], char *envp[])

    char str[] = "asfasfas";
    char *p = "asas";
    char ret = '0';
    ret = strstr(str, p);
    if (ret != NULL)
    
        printf("%c", ret);
    
    else
    
        printf("NULL");
    
    return 0;

自己的strstr函数


//自己的strstr函数
char * __cdecl my_strstr(const char *str1, const char *str2)

    char *cur = (char *)str1;
    char *s1 = NULL;
    char *s2 = NULL;
    if (!*str2)
    
        return ((char *)str1);
    
    while (*cur)
    
        s1 = cur;
        s2 = (char *)str2;
        while (*s2 && !(*s1 - *s2))   //*s2不为空,并且*s1要与*s2相等
        
            s1++;
            s2++;
        
        if (!*s2)
        
            return cur;
        
        cur++;
    
    return NULL;

如有不足:请告诉小凯,会及时更新与修改的,谢谢大家

如果对github感兴趣可以到我的github中看一下.

以上是关于c语言| |strstr函数的源代码以及自我实现的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题196之实现strstr函数功能

C语言试题196之实现strstr函数功能

C语言strstr()函数(在主字符串里查找子字符串,返回第一次找到的子字符串以及后面的字符串)

c语言中strstr函数的一个注意点

C 语言字符串模型 ( strstr-do…while 模型 )

C 语言字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )(代码