Partage
  • Partager sur Facebook
  • Partager sur Twitter

assigner la valeur d'un int a un char

    22 décembre 2005 à 12:54:57

    lut
    je crois que le titre dit tout. je voudrais assigner la valeur d'une variable int a une variable char.

    je fais comment ? :o
    • Partager sur Facebook
    • Partager sur Twitter
      22 décembre 2005 à 13:31:56

      Transforme la variable int en variable char par l'opérateur de casting :
      variableChar = (char)variableInt;
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2005 à 13:32:06

        int x;
        char y;

        y = x < CHAR_MIN ? CHAR_MIN : x > CHAR_MAX ? CHAR_MAX : (char) x;
        • Partager sur Facebook
        • Partager sur Twitter
          22 décembre 2005 à 13:45:14

          Chahine > c'est du c++ ? moi je cherche du C

          rz0 > j'ai pas vraiment compris comment marche ton bout de code
          • Partager sur Facebook
          • Partager sur Twitter
            22 décembre 2005 à 14:04:57

            Le casting est un opérateur du C et du C++...
            • Partager sur Facebook
            • Partager sur Twitter
              22 décembre 2005 à 14:06:49

              Ya un cast dans mon code. Ya rien de bien compliqué dans mon code ; il gère les valeurs trop grandes ou trop petites avec deux conditions, c'est tout. Si vous ne comprendez pas l'opérateur ternaire, allez donc lire un cours.

              Si vous castez et que la valeur dépasse celles autorisées pour un char, le comportement est indéfini.
              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2005 à 14:14:30

                peut etre que je suis stupide, mais là, j'essaye le code de Chahine et ca marche pas. le compilateur me dit : "incompatible types in assignment".

                voila ce le bout de code où ca bloque :

                int a1 = 12;
                char ch_a1[3];

                ch_a1 = (char)a1;


                verdict ?
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  23 décembre 2005 à 21:56:58

                  Là tu veux convertir un int en chaîne c'est plus exactement la même chose. Il faut utiliser sprintf qui marche comme printf mais prend en premier argument un pointeur char sur la zone où écrire.

                  int a1 = 12;
                  char ch_a1[3];

                  sprintf(ch_a1, "%d", a1);
                  ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 décembre 2005 à 22:13:34

                    Merci :)
                    derniere question (j'espère :p ) comment je fais si je veux faire l'inverse ? mettre un char (string) dans un int ? j'ai essayé d'inverser la place des deux variables mais ca marche pas...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      23 décembre 2005 à 22:21:55

                      Pour l'inverse, tu as des fonctions dans stdlib.h : atoi qui prend le char en argument et renvoit un int, atol renvoit un long (je suis plus trop sûr des types exactement).
                      int a1 = 12;
                      char ch_a1[3];

                      /* int en char* */
                      sprintf(ch_a1, "%d", a1);

                      /* char* en int */
                      a1 = atoi(ch_a1);

                      ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 décembre 2005 à 22:53:14

                        merci beaucoup :D
                        je me coucherais moins bête ce soir :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 décembre 2005 à 23:26:44

                          Oublie pas qu'en ASCII il y a un décalage avec les nombre :)
                          Ainsi, char a = 1, si on le cast en int, ne donnera pas 1, mais 1 + 49 ( 49 étant le décalage il me semble )
                          • Partager sur Facebook
                          • Partager sur Twitter

                          assigner la valeur d'un int a un char

                          × 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