(c++)判断子串是否在字符串中位置

本次实验取材于郭炜的《程序设计与算法》
判断子串是很多oj的题目,这种最基本的题目需要熟练背诵,方能体会到其中真其奥义,下面给出代码
例子:

//编写一个函数:
//int Strstr(char s1[],char s2[]);
//如果s2不是s1的字串,返回 -1
//如果s2是s1的子串,返回其在s1中第一次出现的位置
//空串是任何串的子串,且出现位置为0 

代码

#include<iostream>
using namespace std;
int Strstr(char s1[],char s2[]){
	if(s2[0]==0)
		return 0;
	for(int i=0;s1[i];++i){
		int k=i,j=0;
		for(;s2[j];++k,++j){
			if(s1[k]!=s2[j])
				break;
		}
		if(s2[j]==0)
			return i;
	}
	return -1;
}
int main()
{
	char str1[10]="hello";
	char str2[10]="ell";
	int a = Strstr(str1,str2);
	cout << a;
	
}
发布了16 篇原创文章 · 获赞 2 · 访问量 167

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/104778355