3223: 05-26-A02-查找子串(L4)
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:2
解决:2
题目描述
利用string类型字符串的find()函数在一个字符串s中查找另一个字符串s1,输出每个匹配的位置,如果不存在,则输出no。
以样例数据1为例,s为"abcdabcdabcd",s1为"bcd",在s里能找到s1,此时s1称为s的子串。所谓s的子串,就是由s的连续元素构成的一个字符串。
此外,由于在字符串中,元素的下标是从0开始计的,因此,这个样例数据,匹配位置依次为1, 5, 9。 string类型的字符串提供了find函数,可以在字符串中查找字符/字符串。
find函数有多个版本,本题需要用的是以下find函数。 int find(string s1, int pos); //从pos开始查找字符串s1在字符串s中的位置,成功时返回所在位置,失败时返回string::npos的值(npos是一个常量,用来表示不存在的位置)
输入
输入数据占两行,第一行为字符串s,第二行为字符串s1。这两个字符串均不含空格。
输出
依次输出s1在s中的所有匹配位置,用空格隔开;如果在s中查找不到s1,输出no。
样例输入 复制
abcdabcdabcd
bcd
样例输出 复制
1 5 9
提示
## 样例 #1
### 样例输入 #1
```
abcdabcdabcd
bcd
```
### 样例输出 #1
```
1 5 9
```
## 样例 #2
### 样例输入 #2
```
abcdabcdabcd
acd
```
### 样例输出 #2
```
no
```
## 样例 #3
### 样例输入 #3
```
aaaaaa
aaa
```
### 样例输出 #3
```
0 1 2 3
```
### 样例输入 #1
```
abcdabcdabcd
bcd
```
### 样例输出 #1
```
1 5 9
```
## 样例 #2
### 样例输入 #2
```
abcdabcdabcd
acd
```
### 样例输出 #2
```
no
```
## 样例 #3
### 样例输入 #3
```
aaaaaa
aaa
```
### 样例输出 #3
```
0 1 2 3
```