cosa c'è di sbagliato? perchè non mi trova gli anagrammi corretti?
so che il problema è nel ciclo for ma non riesco a individuarlo!



#include <stdio.h>
#include <string.h>
#include <stdlib.h>

codice:
int main (void)

   {

       char p1[20];
       char p2[20];

       int i=0;
       int x,k,temp,temp2;
       char p1aux[20];
       char p2aux[20];


       printf ("digita una parola: ");
       scanf ("%s", p1);
       printf ("digita una seconda parola: ");
       scanf ("%s", p2);


       strcpy(p1aux,p1);
       strcpy(p2aux,p2);
        if (strlen(p1)==strlen(p2)){


                for (k=0; k<(strlen(p1)-1); k++){
                        for (i=k; i<strlen(p1); i++){

                                        if (p1aux[i]>p1aux[i+1]) {

                                                    temp=p1aux[i];
                                                    p1aux[i]=p1aux[i+1];
                                                    p1aux[i+1]=temp;
                                                    }


                        }}

            for (i=0; i<(strlen(p1)-1); i++) {
                        for (k=i; k<strlen(p1); k++) {

                             if(p2aux[k]>p2aux[k+1]) {
                                    temp2=p2aux[k];
                                    p2aux[k]=p2aux[k+1];
                                    p2aux[k+1]=temp2;                             }

                        }}

                         printf( "%s\n", p1aux);
                        printf ("%s\n", p2aux);
        if (strcmp(p1aux,p2aux)==0)
                    printf ("le parole sono un anagramma!");

else printf ("le parole non sono un anagramma");

    }

        else
                    printf ("le parole non sono anagrammi!");
return 0;
   }