验证子串


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

 

输入格式:

输入两个字符串, 每个字符串占一行,长度不超过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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM