判断子函数,给出两个字符串s1、s2,若s2不是s1的子串,返回-1,若s2是s1的字串,返回第一次出现的位置。空串是任何串的子串,且返回位置为0(朴素模式匹配)
作者:互联网
#include<iostream>
#include<cstring>
using namespace std;
int Findstr(char s1[] , char s2[]) {
int len1 = strlen(s1);
int len2 = strlen(s2);
if(len2 == 0) return 0; //空串返回0
int i = 0;
int j = 0;
while(s1[i]!='\0' && s2[j]!='\0') {
if(s1[i] == s2[j]) {
i++;
j++;
}
else
{
i = i-j+2;
j = 0;
}
}
if(s2[j]=='\0') return i-len2+1;
else return -1;
}
int main() {
char s1[100];
char s2[10];
cin >> s1 ;
cin >> s2 ;
cout << Findstr(s1,s2);
return 0;
}
标签:子串,return,int,s2,s1,char,len2 来源: https://blog.csdn.net/weixin_52787068/article/details/122496532