// 规律: s中是否能够循环移位,查看是否包含子串str,就是将s+s, 直接查看是否包含str
#include <iostream>
#include <cstring>
using namespace std;
string s, sub;
int main()
{
cin>>s>>sub;
if(s.length() < sub.length()) //长的肯定为父串,短的一定为子串
{
swap(s, sub);
}
// strcpy(ch, sub.c_str()); //因为后面要用到ctring的函数,故要把string转换成字符数组类型
s += s;
if(strstr(s.c_str(), sub.c_str()) == NULL) //判断是否包含子串
{
cout<<"false"<<endl;
}
else
{
cout<<"true"<<endl;
}
return 0;
}
null什么意思啊
博主姥爷,strstr(s.c_str(), ch) == NULL ch与s进行比较,是像下面这样的吗?“AAASCDAAASCD“与“SDA空空空空空....(35个)”
那这个strstr函数的比较过程是啥样的?逐位的话不就出错了吗?但是没有出错,明显是我不懂。
strstr(s.c_str(), ch) 流程是先把字符串类型的s转换成c字符数组类型的字符串,然后在该字符串数组里来查找ch字符数组是否是其子串,如果是,返回指向该子串的指针,如果不是其子串,则返回NULL
好的,谢谢
一起加油哟
加油、