您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

实现strrstr,找到子串最后的出现位置

柳鲲鹏 发布时间:2022-03-10 16:21:49 ,浏览量:0

  思路:使用strstr,从左向右依次查找,找到最后出现的那个。从右向左找也行(也许更快),实现起来比较麻烦,没有这个易懂。


#include 
#include 
#include 
#include 
 
char* taishan_strrstr(const char *pSrc, const char* pSub)
{
    assert(pSrc);
    assert(pSub);
    char* pLastFound = NULL;
    char* pTemp      = (char*)pSrc;
    int   nSubLen    = strlen(pSub);

    if(   pSrc == NULL || pSrc[0] == 0
       || pSub == NULL || pSub[0] == 0)
    {
        return NULL;
    }

    while (pTemp)
    {
        pTemp = strstr(pTemp, pSub);
        if (!pTemp)
        {
            break;
        }
        pLastFound  = pTemp;
        pTemp      += nSubLen;
    }
    return pLastFound;
}
 
int main()
{
    const char* pSrc   = "Taishan Office, Tai'an";
    const char* pSub   = "Tai";
          char* pRight = taishan_strrstr(pSrc, pSub);
    printf("right found=%s\n", pRight);
    return 0;
}

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0514s