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; }
测试结果: