strstr()函数实现

/*
函数要求:写一个函数模拟strstr()函数,设计中不得使用其他库函数。
函数原型:const char *strstr(const char *str1,const char *str2);
说明:在字符串str1中,寻找字串str2,若找到返回找到的位置,否则返回NULL。
比如:"123523456"寻找"234",会返回23456
*/
#include<iostream>
using namespace std;
const char * my_strstr( const char *str,const char *subStr);
int main(void)
{
     char * str="123523456";
     cout<<"主字符串:"<<str<<endl;
     char * subStr="234";
     cout<<"子字符串:"<<subStr<<endl;

     if(my_strstr(str,subStr)==NULL)
         cout<<"不是子字符串"<<endl;
     else
         cout<<"匹配后的所有字符串:"<<my_strstr(str,subStr)<<endl;
    
     getchar();
}
const char * my_strstr( const char *str,const char *subStr)
{
    int i,j;
    i=j=0;
    while(str[i]&&subStr[j])
    {
        if(str[i]==subStr[j])
        {
            i++;
            j++;
        }
        else
        {
            i++;
            j=0;
        }
    }
    if(subStr[j]=='\0')
        return str+i-j;
    return NULL;
}

测试结果:

posted @ 2014-07-07 11:21  北门吹风  阅读(403)  评论(0编辑  收藏  举报