在一个字符串中查找另一个给定的字符串首次出现的位置

######请问两个for循环中的循环条件是什么意思,以及if语句又表示什么

//编写一个函数实现:在一个字符串中查找另一个给定的字符串首次出现的位置。
//int find(char * strSrc, char * strFind)
//该函数在字符串strSrc中查找字符串srcFind首次出现的位置,
//并返回一个整数表示该位置,返回-1表示查找失败或未找到。
#include <fstream>
#include<iostream>
#include <cstring>
using namespace std;
int find(char * strSrc, char * strFind)
{
/***************************** Begin ******************************/
    int n1=strlen(strSrc);//
    int n2=strlen(strFind);//
    if(n1<n2) return -1;
    int i,j;
    for(i=0;i<=n1-n2;i++)//查找字符串strFind在strSrc开始位置
    {
        for(j=0;j<n2;j++)
        {
            if(*(strSrc+i+j) != *(strFind+j))
               break;
        }
        if(j==n2) return i+1;
    }
    return -1;

/***************************** End ********************************/
}

int main()
{
    ifstream file_in("in.txt");
    ofstream file_out("out.txt"); 
    if(!file_in||!file_out) return -1;
    streambuf *std_in;  
    streambuf *std_out;
    std_in= cin.rdbuf(file_in.rdbuf());  
    std_out= cout.rdbuf(file_out.rdbuf());  

    char strSrc[100],strFind[100];
    while(cin.getline(strSrc,100)&&cin.getline(strFind,100))
        cout<<find(strSrc,strFind)<<"\n";

    file_in.close();
    file_out.close();
    cin.rdbuf(std_in); 
    cout.rdbuf(std_out);    
    return 0;
}


外层循环是遍历每一个字符(每个字符都尝试做开头),内层循环是从这里开始匹配,if是如果匹配失败就跳出循环