在一个字符串中寻找某个子串

不断的从母串 str 中取出和子串长度相等的临时子串 temp,与子串 str2 进行比较。如果没有找到子串,返回 -1;成功找到子串,返回子串首字母在母串中的位置,该位置从 0 开始。
///
代码测试用例有一个通过不了
//////

#include
#include
using namespace std;
int main()
{
    int m,n,j,k,flag=0;
    char a[100000],b[100000];
    cin>>a>>b;
    m=strlen(a);
    n=strlen(b);//输入字符串长度; 
    for(j=0;j<=m-n;j++)
    {
        if(a[j]==b[0]){       //从母链里找和子链首字母相同的 
            flag=1;
            for(k=0;k//对照是否其余元素嵌合 
            if(a[j+k]!=b[k]){
                flag=0;
                }
            }                  //若完全嵌合,则flag为1; 
            if(flag==1){
            cout<break;//输出重合位置 
            }
        }
        
    }
    if(flag==0){
        cout<<-1;
    }
}

已解决,输入的问题,cin识别不了空格

看看题目怎么规定的,是不是超时了。
你的算法不优化,如果超时建议用KMP算法。