翁恺C语言程序设计进阶_第一周编程题

题目内容:

题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。

注意,第一个字符的位置是0。

注意,第一个字符串在第二个字符串中的位置可能不止一处。

注意,字符串中可能含有空格。

注意,两个字符串的长度一定大于0。

输入格式:

两个字符串,一行一个。

输出格式:

第一个字符串在第二个字符串中出现的位置,按照从小到到的顺序排列,每个数字后面有一个空格。

如果在第二个字符串中找不到第一个字符串,则输出-1。

输入样例:

abba

ababbba abbabbabbabbaacc

输出样例:

8 11 14 17

本人代码

 1 #include <iostream>
 2 #include <string.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char a[10000], b[10000];
 8     int num[5000];
 9     int x = 0;
10     gets(a);
11     gets(b);
12 
13     for(int i = 0; i<strlen(b); i++)
14     {
15         int flag = 1;
16         for(int j = 0; j<strlen(a); j++)
17         {
18             if(a[j] != b[i+j])
19             {
20                 flag = 0;
21                 break;
22             }
23         }
24         if(flag)
25         {
26             num[x] = i;
27             x++;
28         }
29     }
30     if(x == 0)
31     {
32         cout << -1;
33     }
34     else
35     {
36         for (int i = 0; i < x; i++) {
37             cout << num[i] <<" ";
38         }
39     }
40     return 0;
41 }

 

posted @ 2020-08-28 15:45  sueg-lee  阅读(159)  评论(0)    收藏  举报