Cod sursa(job #2526668)

Utilizator Andrei1Mariciuc Andrei-Alexandru Andrei1 Data 18 ianuarie 2020 22:28:47
Problema Potrivirea sirurilor Scor 40
Compilator c-32 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int* match1(char* s1,char* s2)
{
    int m=strlen(s1);
    int n=strlen(s2);
    int* poz=calloc(n,sizeof(int));
    int k=0;
    for(int i=0;i+m-1<n;i++)
    {
        int match=1;
        for(int j=0;j<m;j++)
        {
            if(s2[i+j]!=s1[j])
            {
                match=0;break;
            }
        }
        if(match)
            poz[++k]=i;//gandeste te!
    }
    poz[0]=k;
    return poz;
}
int main()
{
    FILE *f,*g;
    f=fopen("strmatch.in","r");
    freopen("strmatch.out","w",stdout);
    if(f==NULL)
        puts("EROARE");
    char* s1=calloc(2000001,1);
    char* s2=calloc(2000001,1);
    fscanf(f,"%s%s",s1,s2);
    fclose(f);
    int* poz=match1(s1,s2);
    printf("%d\n",poz[0]);
    for(int i=1;i<=poz[0] && i<1000;i++)
        printf("%d ",poz[i]);

    return 0;
}