c语言代码练习41

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

复制代码
#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;
}
复制代码

 

posted @   小菜阿跃  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示