51Nod-2149子串水题find
生活随笔
收集整理的這篇文章主要介紹了
51Nod-2149子串水题find
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2149 字符串出現位置
題目鏈接:https://www.51nod.com/Challenge/Problem.html#problemId=2149
1.0 秒 131,072.0 KB 5 分 初學者1級題
給你兩個字符串,一個母串,一個子串,請你找出子串第一次在母串中出現的位置。如果子串沒有在母串中出現過,則輸出-1。
例如子串ab在母串dceab中第一次出現的位置是3,而子串abc則在dceab中沒有出現過。
輸入
第一行一個字符串(母串),保證每個字符都是小寫字母。
第二行一個字符串(子串),保證每個字符都是小寫字母。
保證兩個字符串的長度都不超過10000,并且大于0。
輸出
一行一個整數,表示子串第一次在母串中出現的位置。假如子串沒有在母串中出現過,則輸出-1。
輸入樣例
decdagee
age
輸出樣例
4
c++語言AC代碼
#include<iostream> #include<string> using namespace std;int main(){string a,b;cin>>a>>b;int pos=a.find(b);cout<<( (pos==string::npos)?-1:pos) <<endl;}復習string 中find函數
查找(find)
語法:
find()函數:
沒找到就是a.find(b)==-1
例如,
復習c語言中strstr函數,也是返回子串
strstr
語法:
功能:函數返回一個指針,它指向字符串str2 首次出現于字符串str1中的位置,如果沒有找到,返回NULL。
應用c語言strstr解題
#include<iostream> #include<cstring> using namespace std;#define maxn 10000 char a[maxn],b[maxn]; int main(){cin>>a>>b;char *p=strstr(a,b);//返回子串的首指針cout<<(p==NULL ? -1 : (p-a))<<endl;//指針相減得到下標}總結
以上是生活随笔為你收集整理的51Nod-2149子串水题find的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [递归][DP]n条直线最多分平面为几部
- 下一篇: 51Nod- 1915 西湖游船