两个不为空的子串,str1和str2,判断如果str2是否为str1的子串,返回子串的起始下标,如果不是,返回-1;
例如:asdfgh df 返回值为2;asdfgh zx 返回值为-1;
#include<iostream>
#include<cstring>using namespace std;
char str1[1000],str2[1000];
int str(char str1[],char str2[])//两个循环,第一个循环是遍历str1,第二个循环是把第二个字符串的字符一个一个拿来与第一个字符比较
{
for(int i=0;str1[i];i++)
{
int k=i,j=0;
for(;str2[j];j++,k++)
{
if(str1[k]!=str2[j])
break;
}
if(str2[j]==0)//如果符合这个if条件,就表明str2是因为比完最后一个字符才结束的第二个循环,意味着,存在子串,则i就是起始位置,否则不存在
return i;
}
return -1;
}
int main()
{
cin>>str1;
cin>>str2;
cout<<str(str1,str2)<<endl;
return 0;
}