#include <malloc.h> #include <string.h> int main() { char alphabet[27] = "abcdefghijklmnopqrstuvwxyz"; // La chaîne de base char* pcAlpha; // Servira à parcourir la chaîne int i , j; char c; const int iLaTailleDeMonTableau = 26; char* pszMonTableau[iLaTailleDeMonTableau]; for (i = 0 ; i < iLaTailleDeMonTableau ; ++i) { // On alloue la taille de la chaîne dans un élément du tableau pszMonTableau[i] = (char*) malloc(27 * sizeof(char)); // On copie la chaîne de la case précédente du tableau dans la case en cours // (ou la chaîne de base si l'on est dans la première case) strcpy(pszMonTableau[i] , (i == 0 ? alphabet : pszMonTableau[i - 1])); if (i == 0) //Si c'est la première case continue; // On ne modifie pas la chaîne de base pcAlpha = pszMonTableau[i]; // On pointe sur la chaîne en cours c = *pcAlpha; // On sauvegarde le premier caractère for (j = 0 ; j < 25 ; ++j) { *pcAlpha = *(pcAlpha + 1); // On recopie à l'emplacement de chaque lettre, la lettre située juste après pcAlpha++; // Et on avance } *pcAlpha = c; // La première lettre passe à la fin } // Et voilà //... //une fois le tableau rendu obsolète (fin du programme ou fin de nécessité d'utilisation) , on restaure la mémoire allouée for (i = 0 ; i < iLaTailleDeMonTableau ; ++i) free(pszMonTableau[i]); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question