求各路大神解答C++找字符串并且返回

编写一个程序,判定一个字符串是否为另外一个字符串的子串,若是,返回子串在主串中的位置。要求不适用strstr函数,自己编写一个子函数实现。 要求不使用strstr函数。

 #include<iostream>
#include<string>
#include<cstring>
using namespace std;

string a,b;

int main()
{
    int i,j,l,f;

    //输入两个字符串
    cin>>a>>b;
    for(i=0;i<a.length();i++)//遍历字符串a
    {
        //如果a的长度-i小于了b的长度,那么不需要再进行比较了
        if(a.length()-i<b.length()) break;
        f=1;//f先置为1
        for(j=0;j<b.length();j++)//遍历b字符串
        {
            if(a[i+j]!=b[j])
            {
                f=0;
                break;
            }
        }
        if(f==1)
        {
            cout<<i<<endl;
            return 0;
        }
    } 

    cout<<-1<<endl;

    return 0;
}

可以自己一位一位来进行比对

 #include "iostream"
#include "string"
using namespace std;
int isSubString(string originString ,string subString) {
    int position = -1;
    for(int i=0;i<originString.length()-subString.length()+1;i++) {
        for (int j=0; j<subString.length(); j++) {
            if (originString[i+j]!=subString[j]) {
                break;
            }
            if (j==subString.length()-1) {
                position = i;
                return position;
            }
        }
    }

    return position;
}

int main() {
    string originString = "aabbccdd";
    string subString = "cd";
    int position = isSubString(originString,subString);
    if (position == -1) {
        cout<<"不是子串"<<endl;
    }
    else {
        cout<<"是子串,位置为:";
    cout<<position<<endl;
    }
    return 0;
}