Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- // Очитска буфера ввода если использовали scanf
- // и считывали до символа переноса строки
- void clean_buffer()
- {
- int c;
- while((c = getchar()) != '\n');
- }
- int substr(char* str1, char* str2, int** result, int, int);
- int main()
- {
- int str1_len; // Размер подстроки
- int str2_len; // Размер строки в которой искать подстроку
- scanf("%i %i", &str1_len, &str2_len);
- clean_buffer();
- char* str1;
- char* str2;
- str1 = calloc ( str1_len, sizeof (char) );
- str2 = calloc ( str2_len, sizeof (char) );
- scanf ("%s", str1);
- scanf ("%s", str2);
- str1 [str1_len]='\n';
- str2 [str2_len]='\n';
- int* result;
- int arr_len = substr(str1, str2, &result, str1_len, str2_len);
- int i = 0;
- for(i = 0; i < arr_len; i++)
- printf("%i ", result[i]);
- }
- int substr(char* str11, char* str22, int** result, int len1, int len2)
- {
- int k=0;
- int j=0;
- int n=0;
- int d=0;
- char* istr;
- while(istr != NULL){
- istr = strstr (str22, str11);
- d = istr-str22;
- result[k]=d+n;
- k++;
- n=n+result[k]+len1;
- for (j=0; j<len2-n;j++)
- str22[j] = str22[j+n];
- }
- return k;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement