查找字符串中指定的子串的首次出现的位置

/* *!============================================================== *! FNAME: SubStr.cpp *! BRIEF: *! AUTHR: RollStone *! EMAIL: jealdean@outlook.com *! VERNO: 1.0.9 *! CREAT: 2015-05-05 19:19:59 *! CHGON: 2015-05-05 22:04:12 *! *!Copyright (c) 2015 All Rights Reserved By Abodu Org *!============================================================== */;/** * @brief * * @param str[] * @param substr[] * * @return *if not str or not substr return -1 *index of substr in str */int GetSubstrFirstIndex(char str[], char substr[]) {char* pCur=NULL,*q=NULL;if(!str||!substr||!(pCur=strchr(str,substr[0]))) {return -1;}while(pCur) {if(!strncmp(pCur,substr,strlen(substr))) {return (int)(pCur-str);}q=pCur+1;if(!q) {break;}pCur=strchr(q,substr[0]);}return -1;}int main() {char sd[]=”One two three two four two five”;int n=GetSubstrFirstIndex(sd,”two”);cout<<“Found the first substring :”<<(sd+n)<<endl;return 0;}//在Linux平台上有系统自带的版本,Windows上则需要自己实现#ifndef strndup/** * @brief * 新版的复制指定字符串的前N个字符 * @param src * @param n should be positive * * @return */char* strndup(char* src,int n) {if(!src||n<=0) {return NULL;}int srcLen=strlen(src);int realN=(srcLen>n)?n:srcLen;char* returnStr=(char*)malloc(realN+1);memcpy(returnStr,src,realN);return returnStr;}#endif //strndup

,选择逃避,选择被动的去面对生活

查找字符串中指定的子串的首次出现的位置

相关文章:

你感兴趣的文章:

标签云: