/* Scrivere una funzione che prese in input due stringhe, A, B stampi 1 se B `e un
anagramma di A e 0 altrimenti. */
#include <stdio.h>
int anagramma(char *, char *);
int main()
{
char stringa1[255];
char stringa2[255];
scanf("%s", stringa1);
scanf("%s", stringa2);
printf("%d", anagramma(stringa1, stringa2));
return 0;
}
int anagramma(char *s1, char *s2)
{
/*variabili*/
int i=0;
int j=0;
int k=0;
int z=0;
int uguali;
char temp;
/* conta stringa1 */
while (s1[k] != '')
{
k++;
}
/* conta stringa2 */
while (s2[z] != '')
{
z++;
}
if (k!=z)
return 0;
/* ordina la stringa1 */
for(i=0;i<k-1;i++)
for(j=0; j<k-1-i; j++)
if (s1[j]>s1[j+1])
{
temp=s1[j];
s1[j]=s1[j+1];
s1[j+1]=temp;
}
/* ordina la stringa2 */
for(i=0;i<k-1;i++)
for(j=0; j<k-1-i; j++)
if (s2[j]>s2[j+1])
{
temp=s2[j];
s2[j]=s2[j+1];
s2[j+1]=temp;
}
/* se stringa 1 è uguale a stringa 2 allora s1 anagramma di s2*/
uguali = 1;
i=0;
while (i<k && uguali==1)
if (s1[i]==s2[i])
i++;
else uguali=0;
if (uguali==1)
return 1;
else return 0;
}
Ricerca appunti sul web
Ricerca personalizzata
giovedì 26 febbraio 2009
Sorgenti c : Anagramma
Pubblicato da Baiox alle 15:26
Etichette: Informatica, Programmazione C
Iscriviti a:
Commenti sul post (Atom)
0 commenti:
Posta un commento