字符串匹配
给定一串1和串2,若串2是串1的子串,则返回串2在串1中第一个字母出现的位置,若串2不是串1的子串,返回-1;#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){char str[99];char s
·
给定一串1和串2,若串2是串1的子串,则返回串2在串1中第一个字母出现的位置,若串2不是串1的子串,返回-1;
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
char str[99];
char subStr[99];
while(cin>>str>>subStr){
int str_len=strlen(str);
int sub_len=strlen(subStr);
// int flag=0;
int p=0;
int index=-1;
for(int i=0;i<str_len+1;){
if(p==sub_len){
// flag=1;若只需判断是否是串1的子串,只需加个flag变量,可以删去index变量
index=i-p+1;
break;
}
else if(str[i]==subStr[p]){
p++;i++;
}
else if(str[i]!=subStr[p]&&p==0){
i++;
}
else if(str[i]!=subStr[p]&&p!=0){
i=i-p+1;
p=0;
}
}
cout<<index<<endl;
}
return 0;
}
更多推荐
已为社区贡献1条内容
所有评论(0)