字串匹配

2021-10-08 04:11:12 字數 1453 閱讀 7044

**

description

曾經,zyj同學非常喜歡密碼學。有一天,他發現了乙個很長很長的字串s1。他很好奇那代表著什麼,於是神奇的wl給了他另乙個字串s2。但是很不幸的是,wl忘記跟他說是什麼意思了。這個時候,zyj不得不求助與偉大的zp。zp笑了笑說,這個很神奇的,wl的意思是只要你找到她給你的字串在那個神奇的字串的位置,你就會有神奇的發現。zyj恍然大悟,原來如此,但是悲劇來了,他竟然不知道怎麼找。。。。是的,很囧是不是。所以這時候就需要化身為超級瑪麗亞的你現身了,告訴他吧。。。。。。

input

首先輸入乙個n。表示有n組測試資料。

每組測試資料有兩行。

第一行為字串s1,長度不大於1000000。

第二行為字串s2,長度不大於10000,並且長度不小於2。

output

輸出s2在s1的位置。如果有多個位置,只輸出第乙個位置。

如果找不到,就輸出「::>_<::「(不輸出雙引號)。

sample

input

1asdfgdf

dfoutput

3**題意:**給了兩個字串s1,s2,查詢s2在s1的位置。如果有多個位置,只輸出第乙個位置。如果找不到,就輸出「::>_<::「(不輸出雙引號)。

** 運用函式:**這道題有兩種不同的方法

string標頭檔案裡的strstr(s1,s2)函式,s1是被查詢的字串,s2是要查詢的字串,這個函式的返回值是該函式返回在 s1 中第一次出現 s2 字串的位置,如果未找到則返回 null (值為0)。

如果不懂可參考此此鏈結

string標頭檔案裡的定義在int型別裡的find函式,形式是**s1.find(s2)**它和strstr函式的功能差不多,也可以用來查詢字串的位置,然後這個函式的返回值是 當找到s2在s1 中第一次出現 的位置,若沒找到,則會返回string::npos的值。

關於string::npos的值,其實我也不太了解,就它是乙個特別大的數,其值並不知道,一般當做-1來處理。

ac**-----strstr函式

#

include

#include

#include

#include

#include

using

namespace std;

intmain()

return0;

}

ac**—find函式

#

include

using

namespace std;

intmain()

return0;

}

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...

字串匹配

面試題 給一串很長的字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 思路一 利用兩層迴圈,逐個查詢目的串中的字元,比如先查詢字元 1 是否在長字串中,再查詢 2 是否在長字串中,直到目的串遇到 0 是 include include include int m...