Partage
  • Partager sur Facebook
  • Partager sur Twitter

L'ASCII

    8 février 2006 à 22:21:56

    Salut tout le monde,

    ça n'a pas vraiment des masses de rapport avec vraiment la programmation mais vu que je me suis posé cette question en cours de Labo C ben je le met ici ^^

    Alors, mon prof à fait un petit algorithme qui permet de voir si un texte est correctement parenthèsé en admettant que les nombres de parenthèses ouvrantes = le nombre de parenthèses fermantes.

    Et en fait il a utilisé l'ASCII pour faire une conversion. Par exemple passer de ) à ( en faisant son code ASCII - 1, fin un truc du genre, je connais pas le code ASCII par coeur.

    Je me suis donc demandé si cela fonctionnerait sur toute les machines, car une choses que j'ignore, c'est "est-ce que le code ascii est identique sur toutes les machines ?". Je pense que non car j'ai entendu parler d'unicode qui lui le serait. Je dis peut etre une betises mais si c'est le cas, cela voudrait dire que son programme ne fonctionnerait pas sous n'importe quelle machine et je voulais en avoir le coeur net.

    Merci d'avance de votre réponse.
    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2006 à 22:28:23

      Les caractères ACSII ont les même code pour toutes les machines.
      Là où le unicode et compagnie intervient, c'est pour la gestion des caractères spéciaux (accentué, ....) qui ne sont pas dans la table ACSII !
      http://www.garykessler.net/library/ascii.html
      • Partager sur Facebook
      • Partager sur Twitter
        8 février 2006 à 22:46:32

        Tout dépend ; si tu parles vraiment d'ASCII, il n'y en a qu'un (ou plutôt une base et des extensions). Par contre, si la question est : j'ai un code C qui se base sur l'ASCII, est-ce que je pourrais l'utiliser de partout ? La réponse est évidemment non, tout le monde n'utilise pas l'ASCII. Si la question est : est-ce que je peux faire des trucs genre ('(' - 1) en supposant que le résultat corresponde à la table ASCII, la réponse est non, puisque le C ne garantie pas d'ASCII.
        • Partager sur Facebook
        • Partager sur Twitter
          8 février 2006 à 22:55:05

          Par contre, tu peux utiliser directement le code des caractères dans ton programme en utilisant '(' et ')'
          • Partager sur Facebook
          • Partager sur Twitter
            8 février 2006 à 23:01:50

            oui, oui, ca d'accord mais je voulais juste savoir si le fait de faire -1 fonctionnerait sur toutes les machines ...
            • Partager sur Facebook
            • Partager sur Twitter
              8 février 2006 à 23:05:51

              rz0 a l'air de dire que non !
              • Partager sur Facebook
              • Partager sur Twitter
                8 février 2006 à 23:27:20

                Bah, faire - 1 pour *quoi* faire ? Si c'est pour obtenir une correspondance quelconque avec un caractère attendu, ça ne marchera pas, après si tu veux juste soustraire 1 à un entier positif qu'est la constante de caractère, c'est portable oui.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 février 2006 à 23:45:20

                  En résumé c'est pas à faire :p
                  • Partager sur Facebook
                  • Partager sur Twitter

                  If you'd like to join us, read "How do we work at OpenClassrooms"! :)

                    9 février 2006 à 0:08:03

                    Pour répondre à rz0, c'est en fait pour attribuer une valeur a une variable char, c'est un peu compliqué car il a codé ca bizaremment, mais il voulait par exemple (version simplifiée) faire un truc du genre :

                    If (variable[3] = '(')
                    variable[3] = variable[3] - 1;


                    Autrement dit décrémenter le code ASCII du caractère analysé pour obtenir un caractère bien spécifique !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 février 2006 à 7:01:15

                      Oui mais rien ne t'empêche de faire :
                      If (variable[3] = '(')
                      variable[3] = ')';
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 février 2006 à 8:36:29

                        franchement, pour dire si une expression est bien parenthésée, il n'y as pas besoin de stocker quoi que ce soit dans un tableau.

                        Un entier et un for sur la chaine suffisent.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        L'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