######请问两个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是如果匹配失败就跳出循环