#include #include #include #include #include "Mot.h" MOT_Mot MOT_creationMot(char* chaine){ assert( strlen(chaine)>0 ); MOT_Mot unMot; unsigned int i; unMot.mot=NULL; strcpy(unMot.mot,chaine); unMot.longueur=strlen(unMot.mot); for (i=0; ilongueur;i>=pos;i--){ unMot->mot[i+1]=unMot->mot[i]; } unMot->mot[pos]=caractere; unMot->longueur=unMot->longueur+1; } void MOT_supprimerCaractere(MOT_Mot* unMot, unsigned int pos){ assert(pos1); unsigned int i; for(i=pos;i<=strlen(unMot->mot);i++){ unMot->mot[i]=unMot->mot[i+1]; } unMot->longueur=unMot->longueur-1; } void permuter_ch(char * a, char * b) { char k; k=*a; *a=*b; *b=k; } void MOT_echangerCaractere(MOT_Mot* unMot, unsigned int pos1, unsigned int pos2){ assert(pos11); permuter_ch(&unMot->mot[pos1],&unMot->mot[pos2]); } int MOT_estIdentique(MOT_Mot premierMot,MOT_Mot deuxiemeMot){ unsigned int n; if (MOT_longueur(premierMot)!=MOT_longueur(deuxiemeMot)) return 0; else { n=strlen(premierMot.mot); if ( premierMot.mot[n]!= deuxiemeMot.mot[n]){ return 0;} else { if (n>1){ MOT_supprimerCaractere(&premierMot,n); MOT_supprimerCaractere(&deuxiemeMot,n); return MOT_estIdentique(premierMot,deuxiemeMot); } else return 1; } } } char* MOT_motEnChaine(MOT_Mot unMot){ unsigned int i; char* chaine=(char*)malloc(sizeof(unMot.longueur)); chaine=""; for(i=1;i<=unMot.longueur;i++){ chaine[i]=unMot.mot[i]; } return chaine; }