Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transformer un string en char[] ?

Est-ce possible ?

Sujet résolu
    24 janvier 2006 à 19:56:16

    Salut !
    Je me demandais s'il était possible de transformer un string en un tableau de char. Ca pourrait bien me servir pour mon projet de pendu...

    Merci

    PS : Répondez simplement à ma question, ne me donnez pas de conseils pour mon pendu, je veux le faire tout seul...
    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2006 à 19:58:55

      En quoi ? Le C n'a pas de string. [1] Précisez que vous faites du C++ dans le titre et dans le topic.

      std::string::c_str si j'ai compris.

      [1] En fait, au sens C, "foo" est une string.
      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2006 à 20:04:02

        Hein ? J'ai rien compris ! C'est quoi "std::string::c_str " ??

        PS : Mon autre PS n'était pas sencé être barré, il devait être en gras. J'ai confondu le b d'ici avec le [b] du BBcode qui met en gras... D'ailleurs, vous devriez changer la lettre, c'est un truc de confusion pour ceux qui utilisent le BBcode habituellement.
        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2006 à 20:06:56

          Citation : coyotte49

          Hein ? J'ai rien compris ! C'est quoi "std::string::c_str " ??

          PS : Mon autre PS n'était pas sencé être barré, il devait être en gras. J'ai confondu le b d'ici avec le [b] du BBcode qui met en gras... D'ailleurs, vous devriez changer la lettre, c'est un truc de confusion pour ceux qui utilisent le BBcode habituellement.


          En gros tu fais :

          string chaine_cpp = "salut les amis je suis une chaine de caractère";
          printf ("%s",chaine_cpp.c_str () );

          Ceci est un exemple, n'allez pas croire que j'encourage le printf () dans du C++ :D
          Enfin avant d'utiliser la stl, tu devrais te renseigner sur la poo et tout ce qui fait que la stl est pratique, mais impénétrable :)
          • Partager sur Facebook
          • Partager sur Twitter
            24 janvier 2006 à 20:12:53

            À mon avis, la question c'était juste "comment faire une chaine de caractères en C", et pas "comment utiliser le constructeur string de la STL du C++ en accédant par index".

            La réponse à la question que j'ai comprise est : tu fais un tableau de char de la taille "nombre de lettres + 1", et tu mets le charactères \0 à la dernière lettre (pour indiquer que c'est une string).

            Exemple :
            char oui[4] //4 car 3+1
            oui[3] = '\0'; // je le met d'abord histoire de pas l'oublier
            oui[0] = 'o';
            oui[1] = 'u';
            oui[2] = 'i';

            printf("%s !\n", oui);
            • Partager sur Facebook
            • Partager sur Twitter
              24 janvier 2006 à 20:18:26

              La question, c'était :
              j'ai ca:
              string caca = "une chaine";


              Comment la transformer en

              char caca[]="une chaine";



              Asmanur, je sais peut-être pas m'en servir, mais ca ne marche pas ta méthode ne marche pas (cannot convert `std::string' to `char' for argument `1' to `void affichage_du_mot(char)' )
              • Partager sur Facebook
              • Partager sur Twitter
                24 janvier 2006 à 20:20:33

                Vu l'erreur retourné, il me semble que c'est une erreur de ta part, enfin montre nous ton code :)
                • Partager sur Facebook
                • Partager sur Twitter
                  24 janvier 2006 à 20:24:34

                  Mais donne plutot directe le code...
                  Je pars de ca :

                  string uneChaine = "mot1";


                  Donne STP le code complet ou à la fin, je me retrouve avec un tableau de caractères contenant ma variable uneChaine.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 janvier 2006 à 20:28:49

                    .....
                    Je t'ai donné le code complet !
                    c_str () te renvoie la chaine, en un tableau de caractère NON MODIFIABLE. Après tu adaptes avec ton code, c'est quand meme la principale qualité d'un programmeur !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 janvier 2006 à 20:31:29

                      Ha oui, c'était moi, j'avais mal foutu mon code. C'est bon, merci, ca marche
                      string uneChaine = "mot1";
                         uneChaine.c_str () ;
                         cout << uneChaine[0];


                      Merci beaucoup !

                      ++ :D
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 janvier 2006 à 18:42:13

                        N'oublie pas d'inclure '<string>', car d'apres le ton dernier code, tu as du oublier de le mettre. std::cout << uneChaine ne peut marcher qu'avec cet include (si uneChaine est un objets string). Quand a c_str(), il renvoie la chaine de type char en constant, et donc il renvoie quelque chose que l'on doit récuperer d'un facon ou d'un autre pour l'utiliser
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 janvier 2006 à 18:47:18

                          Citation : coyotte49

                          Ha oui, c'était moi, j'avais mal foutu mon code. C'est bon, merci, ca marche

                          string uneChaine = "mot1";
                             uneChaine.c_str () ;
                             cout << uneChaine[0];



                          Merci beaucoup !

                          ++ :D

                          Ton code est incorrect.

                          Pour convertir un std::string en char * tu fais:

                          string strMyString = "Hello world!";
                          char *cMyCharPointer = const_cast<char*>(strMyString.c_str());
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Transformer un string en 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