首页 > 其他 > 详细

验证子串

时间:2020-02-03 12:11:48      阅读:69      评论:0      收藏:0      [点我收藏+]

输入两个字符串,验证其中一个串是否为另一个串的子串。

 

输入格式:

输入两个字符串, 每个字符串占一行,长度不超过2000且不含空格。

 

输出格式:

若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2) 
否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1) 
否则,输出 No substring。

 

样例输入:

abc
dddncabca

样例输出:

abc is substring of dddncabca

提示:

s1.find(s2) 在字符串s1中查找s,返回第一次找到的位置

s1.find(s2,x) 在字符串s1中从x位置开始查找s2,返回第一次找到的位置

s1.rfind(s2) 在字符串s1中从右边查找s2,返回第一次找到的位置

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 void f(string a,int la,string b,int lb){
 4     int flag=0;
 5     for(int i=0;i<la;i++){
 6         int j=0,m=i;
 7         while(a[m++]==b[j++]&&a[m-1]!=\0) continue;
 8         if(j==lb+1){ cout<<b<<" is substring of "<<a<<endl;flag=1;break; }
 9     }
10     if(!flag) cout<<"No substring"<<endl;
11 }
12 int main(){
13     string x,y;
14     cin>>x>>y;
15     int lenx=x.size(),leny=y.size();
16     if(lenx>=leny) f(x,lenx,y,leny);
17     else if(lenx<leny) f(y,leny,x,lenx);
18 }

 

s1.rfind(s2,x) 在字符串s1中从右边x位置开始查找s2,返回第一次找到的位置

如果没有找到字符串,都是返回-1

 

验证子串

原文:https://www.cnblogs.com/fuyifandsg/p/12247731.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!