int StrInStr1(char *src,char *des)
{//方法一:穷举src循环移位的字符串组合,每个都跟des比较
int len = strlen(src);
for( int i = 0; i < len; ++i)
{
char tempchar = src[0];
for( int j = 0; j < len - 1;++j) //循环左移
src[j] = src[j + 1];
src[len - 1] = tempchar;
if(strstr(src,des) != NULL)
return true;
}
return false;
}
int StrInStr2(char *src,char *des)
{//方法二:src是src做循环移位后得到的字符串srcsrc的字串,所以可以拿srcsrc跟des比较
int len = strlen(src);
char *tmp;
tmp = (char*)malloc(sizeof(char) * (2 * len + 1));
strcpy(tmp,src); //tmp = src
strcpy(tmp + len,src); //tmp = srcsrc
if(strstr(tmp,des) != NULL)
{
free(tmp);
return true;
}
else
{
free(tmp);
return false;
}
}