7.4 字符串4(编写子串)

#include<iostream>
char s1[100], s2[100];
using namespace std;
int Strstr(char s1[], char s2[])
{
	if(s2[0] == 0) //strlen(s2)==0 
		return 0;
	for(int i = 0; s1[i]; ++i)
	{
		int k = i, j = 0;//每一次重新比较s2都要从第一个数开始比较,使用k是为了方便比较两个数相等的情况 
		for( ; s2[j]; ++j, ++k)
		{
			if(s1[k] != s2[j])//如果不相等,则s1重新换一个值比较,如果相等,继续比较s2的下一个数 
				break;
		} 
		if(s2[j] == 0)//如果比较完了,就输出第一个数 
			return i;
	}
	return -1;//如果比较完了,s2都不是s1中连续的数,则输出-1 
}
int main()
{
	gets(s1);
	gets(s2);
	cout << Strstr(s1, s2) << endl;
	return 0;
} 

还有更快的KMP算法,后面更新~

KMP算法:https://www.cnblogs.com/yjiyjige/p/3263858.html

猜你喜欢

转载自blog.csdn.net/yanyanwenmeng/article/details/81107336
7.4