Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Programme générant chaines

Fait pas du tous ce que je veux.

Anonyme
    13 avril 2006 à 14:36:07

    Voilà alors je me suis fait un programme ne servant a rien qui devrait généraux toutes les chaine possibles jusqu'à un certaint nombre de caractère.

    Le problème c'est qui me cite tous les caractère.
    Donc j'ai
    a
    A
    b
    B
    [...]
    z
    Z

    Voici mon code :

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

    #define TAILLEMAXMOT 10
    #define NOMBRECARACTERES 52

    int testeFinMot (char *mot);
    char convertion (char codeMot);

    int main(int argc, char *argv[])
    {
        char codeMot[TAILLEMAXMOT] = {0};
        char mot[TAILLEMAXMOT];
        long i = 0;
        long lettreActuelle = 0; // Sert a modifier la lettre suivante si l'actuelle est Z
       
        codeMot[TAILLEMAXMOT] = '\0';
        FILE* fichier = NULL;
       
        fichier = fopen("test.txt", "w");
             
        if (fichier == NULL)
          {
          printf("Impossible d'ouvrir le fichier test.txt\n\n");
          system("PAUSE");
          exit(0);
          }
         

        while (!testeFinMot(mot))
        {
              lettreActuelle = 0;
             
              for (i = 0 ; i < TAILLEMAXMOT ; i++)
              {
             
                  if (codeMot[lettreActuelle] < NOMBRECARACTERES) on
                  {
                      codeMot[lettreActuelle]++; //On passe au caractère suivant
                      break;
                  }
                  else
                  {
                      codeMot[lettreActuelle] = 1; //Sinon on met A
                      lettreActuelle++;            //Et on passe au caractère suivant
                  }
              }
             
              for (i = 0 ; i < TAILLEMAXMOT ; i++) //On reconstitu le mot
              {
                 mot[i] = convertion (codeMot[i]);
              }
              fprintf(fichier, "%s \n", mot);      //Et on l'inscrit dans le fichier
        }

      fclose(fichier);
      system("PAUSE");     
      return 0;
    }

    int testeFinMot (char *mot)
    {
        long i = 0;

       
        for (i = 0 ; mot[i] != '\0' ; i++)
        {
            if (mot[i] != 'Z')
               return 0;
        }
       
        return 1;
    }

    char convertion (char codeMot)
    {
         switch (codeMot)
         {
             case 0:
               return '\0';
               break;
             case 1:
               return 'a';
               break;
             case 2:
               return 'A';
               break;
             case 3:
               return 'b';
               break;
             case 4:
               return 'B';
               break;
             case 5:
               return 'c';
               break;
             case 6:
               return 'C';
               break;
             case 7:
               return 'd';
               break;
             case 8:
               return 'D';
               break;
             case 9:
               return 'e';
               break;
             case 10:
               return 'E';
               break;
             case 11:
               return 'f';
               break;
             case 12:
               return 'F';
               break;
             case 13:
               return 'g';
               break;
             case 14:
               return 'G';
               break;
             case 15:
               return 'h';
               break;
             case 16:
               return 'H';
               break;
             case 17:
               return 'i';
               break;
             case 18:
               return 'I';
               break;
             case 19:
               return 'j';
               break;
             case 20:
               return 'J';
               break;
             case 21:
               return 'k';
               break;
             case 22:
               return 'K';
               break;
             case 23:
               return 'l';
               break;
             case 24:
               return 'L';
               break;
             case 25:
               return 'm';
               break;
             case 26:
               return 'M';
               break;
             case 27:
               return 'n';
               break;
             case 28:
               return 'N';
               break;
             case 29:
               return 'o';
               break;
             case 30:
               return 'O';
               break;
             case 31:
               return 'p';
               break;
             case 32:
               return 'P';
               break;
             case 33:
               return 'q';
               break;
             case 34:
               return 'Q';
               break;
             case 35:
               return 'r';
               break;
             case 36:
               return 'R';
               break;
             case 37:
               return 's';
               break;
             case 38:
               return 'S';
               break;
             case 39:
               return 't';
               break;
             case 40:
               return 'T';
               break;
             case 41:
               return 'u';
               break;
             case 42:
               return 'U';
               break;
             case 43:
               return 'v';
               break;
             case 44:
               return 'V';
               break;
             case 45:
               return 'w';
               break;
             case 46:
               return 'W';
               break;
             case 47:
               return 'x';
               break;
             case 48:
               return 'X';
               break;
             case 49:
               return 'y';
               break;
             case 50:
               return 'Y';
               break;
             case 51:
               return 'z';
               break;
             case 52:
               return 'Z';
               break;
             default:
               printf("\n\n    ERROR!\n\n  INVALIDE CARACTERE.\n\n");
               system("PAUSE");
               exit(0);
         }
    }


    S'il vous plait aidez moi :'(
    • Partager sur Facebook
    • Partager sur Twitter
      14 avril 2006 à 10:54:49

      Citation : Nigloo le grand

      Voilà alors je me suis fait un programme



         char mot[TAILLEMAXMOT];
            <...>
            while (!testeFinMot(mot))
            {

      mot n'est pas initialisé. Le comportement est indéfini.

      Peut être qu'au lieu de
      codeMot[TAILLEMAXMOT] = '\0';

      (inutile, codeMot est déjà initialisé à 0)
      tu voulais faire :
      mot[TAILLEMAXMOT] = '\0';

      • Partager sur Facebook
      • Partager sur Twitter
      Music only !

      [C] Programme générant chaines

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown