C++算法:判断字符串s2是否是s1的子串
子串的判断方法
// 编写一个判断子串的函数
#include<iostream>
#include<cstring>
using namespace std;
int Strstr(char s1[],char s2[]){
// 空串是任何字符串的子串
if (s2[0]==0){
return 0;
}
else{
for(int i=0;s1[i];i++){
int k=i,j=0;
// k表示s1当前遍历的位置,j表示s2当前遍历的位置
for(;s2[j];++k,++j){
// 一旦有不相同,跳出循环
if(s1[k]!=s2[j]){
break;
}
}
// 如果已经遍历完了s2才跳出的循环
if( s2[j]==0){
// 返回最开始的s1的起始位置
return i;
}
}
return -1;
}
}
int main(){
char s1[40];
char s2[40];
cout<<"s1= ";
cin>>s1;
cout<<endl;
cout<<"s2= ";
cin>>s2;
int n=Strstr(s1,s2);
cout<<"location: "<<n<<endl;
system("pause");
return 0;
}
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15046239.html