#include <iostream>
using namespace std;
//和标准实现比较了一下,代码的简洁性和优雅型的确自愧不如
//也没有考虑到str1是空串时候的情况,修正之后测试通过
bool strpart(const char *str1, const char *str2){
const char *tmp1=str1;
const char *tmp2=str2;
if(*tmp1=='\0')
return true;
while (*tmp1!='\0'&&*tmp2!='\0'){
while(*tmp1==*tmp2&&*tmp1!='\0'&&*tmp2!='\0'){
tmp1++;
tmp2++;
}
if(*tmp1=='\0')
return true;
else if(*tmp2=='\0')
return false;
else{
tmp1=str1;
tmp2=++str2;
}
}
//最特殊的情况,tmp2不是末尾,但是++str2是末尾
//这种情况下已经没有必要在比较了
return false;
}
int main(){
char *str1="bd";//"abcd" "abcde" "d" "bcd" ""
char *str2="abcd";
cout << strpart(str1,str2) << endl;
return 0;
}
strstr的c语言实现
最新推荐文章于 2023-12-25 08:54:27 发布