Lucchetto

/*Scrivere una funzione che prese in input due stringhe, A e B, stampi la stringa
corrispondente al lucchetto di A e B.
Ad esempio prese le due stringhe mais e sale, il lucchetto di tali stringhe `e maiale
Bisogna
perci`o determinare la massima sottostringa comune alla coda di A ed alla testa di
B, eliminarla da entrambe le stringhe e concatenare le parti restanti di A e B.*/

#include

void lucchetto(char *s1, char *s2);
void stampa(char *s1, char *s2, int x, int y);
int main()
{
char stringa1[255];
char stringa2[255];
scanf("%s", stringa1);
scanf("%s", stringa2);
lucchetto(stringa1, stringa2);
return 0;
}
void lucchetto(char *s1, char *s2)
{
int x=0;
int y=0;
int t;

while(s1[x]!='\0')
{
for(y = 0; s1[x]!='\0' && s1[x] != s2[y] ; x++);
if(s1[x]!='\0')
t = x;
else
{
printf("%s", s1);
printf("%s", s2);
return;
}

for(;s1[x]!='\0' && s1[x]==s2[y]; x++, y++);
if(s1[x]=='\0')

stampa(s1 ,s2, t, y);

}
}
void stampa(char *s1, char *s2, int x, int y)
{

s1[x]='\0';
printf("%s", s1);
printf("%s\n", &s2[y]);
}

Commenti