实现strstr功能,即在父串中寻找子串首次出现的位置
//实现strstr功能,即在父串中寻找子串首次出现的位置 #include<stdio.h> bool Check( char* pParentStr, char* ChildString ) { while ((*pParentStr == *ChildString) && (*ChildString) && (*pParentStr)) { pParentStr+=1; ChildString+=1; } if (*ChildString == '\0') { return true; } else { return false; } } char* strString(char* ParentString,char* ChildString,int& pos) { pos=-1; char* pParentStr=ParentString; while (*pParentStr) { pos+=1; bool bRet=Check(pParentStr,ChildString); if (bRet) { return pParentStr; } pParentStr+=1; } return NULL; } int main(int argc,char* argv[]) { //char* ParentString = "Happy birth birthday to you"; //char* ParentString = "Ha birthday to you"; char* ParentString = "Ha birth to you"; char* ChildString = "birthday"; int pos; char * ret=strString(ParentString,ChildString,pos); printf("%d: %s\n",pos,(ret==NULL)?"NULL":ret); return 0; }
实现strstr功能,即在父串中寻找子串首次出现的位置
http://blog.sina.com.cn/s/blog_5dc7bbf80100v77b.html
#include<stdio.h>
char* strString(char* ParentString,char* ChildString)
{
char* pParentString;
char* pSubString;
for(char* pTemp = ParentString;*pTemp;pTemp++)
{
pParentString = pTemp;
pSubString = ChildString;
pos += 1;
while(*pParentString == *pSubString && *pSubString != '\0')
{
pParentString++;
pSubString++;
}
if(*pSubString == '\0')
return pTemp;
}
return NULL;
}
int main(int argc,char* argv[])
{
char* ParentString = "Happy birthday to you";
char* ChildString = "birthday";
printf("%s\n",strString(ParentString,ChildString));
return 0;
}

浙公网安备 33010602011771号