chaper3_exerise_Uva10340_子字串

时间:2022-06-29 23:22:11
 #include<iostream>
#include<string>
#include<cstring>
using namespace std; int Find(char *fstr, char *sstr)
{
int lenf = strlen(fstr), lens = strlen(sstr), i;
for (i = ; i < lenf; i++)
{
int k = i; //搜寻从下一个字符作为首字符开始
int j = ; //子串每次都从第一个字符开始
while (fstr[k] && sstr[j]) { //结束条件是,其中一个字符串到达了'\0'
int _i;
for (_i = k; _i < lenf; _i++) { //在fstr中查找sstr[j]字符
if (fstr[_i] != sstr[j]) //找不到继续
continue;
else {
j++; k = _i; k++; break; //将找到sstr[j]字符的下一个位置赋给k,再扫描后面是否有新sstr[j]
}
}
if (_i == lenf) //如果找不到--如何处理---如果连一个字符都没有相同的,这个就可以得出无法得出了
return false;
}
if (j == lens) {
return true;
}
else
continue;
}
if (i == lenf)
return false;
} const int maxn = ; int main()
{
char s[maxn], t[maxn];
cin >> s >> t;
if (Find(t, s))
cout << "Yes" << endl;
else
cout << "No" << endl;
return ;
}