Partage
  • Partager sur Facebook
  • Partager sur Twitter

Table ASCII

    19 septembre 2017 à 9:04:06

    Bonjour, actuellement j'écris un programme en c++ sauf que je bloque. Je voudrais, pour un mot donné, pouvoir décaler la lettre à celle d'après, par exemple que le m se transforme en n, le o en p etc.. Je suppose qu'il faut utiliser la table ASCII mais je ne sais pas comment faire, au niveaux de la syntaxe...

    Si quelqu'un a une idée, elle est la bienvenue ! :D

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2017 à 9:07:46

      Lu'!

      Un caractère, c'est juste un nombre. Regarde l'output de ce programme et déduis ce que tu peux faire :

      std::string s = "les chaussettes du nain sont trop biens" ;
      
      for(auto c : s){
        int i = c;
        std::cout << i << ";" ;
      }
      std::cout << std::endl;
      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        19 septembre 2017 à 9:10:48

        Je n'ai jamais vu une boucle for comme celle la, il y a trois champs à remplir non ? Je n'en vois que deux...

        Et sinon je suppose qu'on incrémente avec la table ASCII ? je suis un peu perdu...

        • Partager sur Facebook
        • Partager sur Twitter
          19 septembre 2017 à 9:21:33

          MathieuQuiniou a écrit:

          Je n'ai jamais vu une boucle for comme celle la, il y a trois champs à remplir non ? Je n'en vois que deux...

          C'est juste une boucle qui dit "pour chaque élément 'c' de 's' faire ...". Mais c'est pas l'important ici (même s'il faut que tu regardes ce type de boucle qui est un des plus utiles), exécutes ce code et regarde ce que ça produit comme sortie.

          • Partager sur Facebook
          • Partager sur Twitter

          Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

            19 septembre 2017 à 11:03:21

            La ligne importante dans la boucle est int i = c; pour convertir un caractère en son code ASCII, il n'y a rien à faire si on l'interprète comme un entier c'est le code ASCII, si on l'interprète comme un char avec std::cout c'est le caractère.

            La conversion inverse serait : char c = i;
            La lettre suivante ou le code ASCII suivant, c'est pareil, serait c = c+1;

            • Partager sur Facebook
            • Partager sur Twitter

            En recherche d'emploi.

              19 septembre 2017 à 16:23:40

              Ou, pour que la convertion soit plus évidente à voir:
              for(auto c: s){
                  std::cout << static_cast<int>(c) << ";";
              }
              • Partager sur Facebook
              • Partager sur Twitter
                19 septembre 2017 à 16:35:45

                (Ben justement je trouvais qu'introduire un cast, c'était pas le plus évident).

                • Partager sur Facebook
                • Partager sur Twitter

                Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                Table ASCII

                × 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