实现strrstr,找到子串最后的出现位置
Posted 柳鲲鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现strrstr,找到子串最后的出现位置相关的知识,希望对你有一定的参考价值。
思路:使用strstr,从左向右依次查找,找到最后出现的那个。从右向左找也行(也许更快),实现起来比较麻烦,没有这个易懂。
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
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;
以上是关于实现strrstr,找到子串最后的出现位置的主要内容,如果未能解决你的问题,请参考以下文章