Devo fare un programma che caricate due stringhe si devono vedere se sono l'una l'anagramma dell'altra (utilizzando 2 array "contatori").
Se lo sono output=1 sennò output=0.
Ho scritto il codice ma poi inspiegabilmente una volata caricati le stringhe il programma si blocca...
questo è il codice che ho creato io:
#include <stdio.h>
void reset (int a[],int len) {
int i=0;
for (i=0; i<len;i++) {
a[i]=0;
}
}
void add (int a[],int len,char val) {
if ((val>0)&&(val<len)) {
a[val]++;
}
}
int anagramma(unsigned char *s1, unsigned char *s2) {
int a1[256],a2[256];
int i=0;
int j=0;
reset (a1,256);
reset (a2,256);
while (s1!='\0') {
add (a1,256,s1[i]);
i++;
}
while (s2!='\0') {
add (a1,256,s2[i]);
i++;
}
for (j=0; j<256;j++) {
if (a1[i]!=a2[i]) {
printf ("0");
return 0;
}
}
printf ("1");
}
int main() {
unsigned char *s1;
unsigned char *s2;
s1=malloc(1001*sizeof(unsigned char));
s2=malloc(1001*sizeof(unsigned char));
scanf ("%s",&s1);
scanf ("%s",&s2);
anagramma (s1,s2);
return 0;
}
sapete dirmi dove sta il problema?