c语言代码练习41

发布时间 2023-10-29 13:02:33作者: 小菜阿跃

问:实现在另一个数组中查找子字符串

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
#include <string.h>

int main()
{
    char* p1 = "abcdefgdef";
    char* p2 = "def";
    char* ret =strstr(p1, p2);
    if (ret == NULL)
    {
        printf("子串不存在\n");
    }
    else
    {
        printf("%s\n", ret);
    }
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
#include <string.h>

char* my_strstr(char* p1, char* p2)
{
    assert(p1);
    assert(p2);
    char* s1 = NULL;
    char* s2 = NULL;
    char* cur =(char*)p1;
    if (!*p2)
        return (char*)p1;
    while (*cur)
    {
        s1 = cur;
        s2 = (char*)p2;
        while (*s1 && *s2 &&(*s1 == *s2))
        {
            s1++;
            s2++;
        }
        if (!*s2)
            return cur;
        cur++;
    }
    return NULL;
}

int main()
{
    char* p1 = "abcdefaa";
    char* p2 = "def";
    char* ret = my_strstr(p1, p2);
    if (ret == NULL)
        printf("子串不存在!\n");
    else
        printf("%s\n", ret);
    return 0;
}