Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /*3 лаба*/
- //возвращает одну, считанную с консоли, строку
- char *readLine(){
- char *s = malloc(999);
- s[0]='\0';
- char mem;
- scanf("%c",&mem);
- for(int i=0;mem!='\n';i++){
- s[i]=mem;
- s[i+1]='\0';
- scanf("%c",&mem);
- }
- return s;
- }
- ///Важно. Первый элемент возвращаемого массива это количество элементов!!!
- int *SearchPodstr(char *s1/*строка*/,char *s2/*подстрока*/){
- int* mass = NULL;
- int len=0;
- mass=(int*)realloc(mass,((len+1)*sizeof(int)));
- mass[0]=len;
- int memInd=0;/*запоминаем индекс с первым совпадением*/
- int mem=0;/*Типо идём по подстроке*/
- for(int i=0;s1[i]!='\0';i++){
- //printf("=%c= =%c=\n",s1[i],s2[mem]);
- if(s1[i] == s2[mem]){
- if(mem==0){
- memInd=i;
- }
- if(s2[mem+1]=='\0'){
- len++;
- mass=(int*)realloc(mass,((len+1)*sizeof(int)));
- mass[0]=len;
- printf("\n%d",memInd);
- mass[len]=memInd;
- mem=0;
- memInd=0;
- }else{
- mem++;
- }
- }else{
- mem=0;
- memInd=0;
- }
- }
- return mass;
- }
- int main()
- {
- char* s=readLine();
- char s2[]=" ";
- *SearchPodstr(s,s2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement