IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Tableaux de string (suite)


Sujet :

C++

  1. #1
    Membre �clair�
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par d�faut Tableaux de string (suite)
    Re-Bonjour,

    Je reviens sur mon probl�me de tableau.
    Vos informations m'ont permi de gratter un peu dans ma doc. et j'en suis arriv� � �crire le code de cette fa�on l�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #include <iostream>    //cout
    #include <stdio.h>      //printf
    #include <vcl.h>        //bibliothèque de Borland
     
    using namespace std;   //pour utiliser la classe standard sans avoir à spécifier std::
     
    void Cartes::distribution(){     
     
    string jeux[] = {"ABCDE","01AT4","022T0","033T0"};
     
            cout << " Verification avec 'cout'"<< endl;
            cout << "  jeux 0 = " << jeux[0] << endl;
            cout << "  jeux 1 = " << jeux[1] << endl;
            cout << "  jeux 2 = " << jeux[2] << endl;
            cout << "  jeux 3 = " << jeux[3] << endl;
     
            printf ("\n Verification avec 'printf'.\n");
            printf ("  jeux[0] = %s \n",jeux[0]);
            printf ("  jeux[1] = %s\n",jeux[1]);
            printf ("  jeux[2] = %s\n",jeux[2]);
            printf ("  jeux[3] = %s\n\n",jeux[3]);
            printf ("  pointeur en Hexa = %p \n",*jeux);
            printf ("  pointeur en decimal = %d \n",*jeux);
    }
    J'obtiens les m�mes r�sultats avec cout et printf, sachant que:
    %s -> sp�cificateur de format pour cha�nes de caract�res.
    %p -> sp�cificateur de format pour pointeur (en hexa).
    %d -> sp�cificateur de format pour d�cimal.
    etc... (il y en a d'autres)


    Comment ce fait-il donc, que je puisse quand m�me utiliser printf ?
    Est-ce d� au fait que je fonctionne sous Builder 6 avec la biblioth�que de Borland vcl ou est-ce standard avec C++ ?

    merci et @++

    Claude

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    La biblioth�que standard du C est incluse dans celle du C++.
    Mais le mieux en C++, ce sont les flux

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    413
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 413
    Par d�faut
    Je pense que l'utilisation de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    printf ("  jeux[0] = %s \n",jeux[0]);
    est une grossi�re erreur.

    Cela fonctionne pour l'instant mais je pense qu'il est clairement indiqu� que le type std::string n'est pas oblig� de g�rer de mani�re contigu� les caract�res qui composent la chaine de caract�res.

    Donc pour moi cel� fonctionne pour l'instant car le tableau allou� par d�faut est assez grand pour contenir tes caract�res mais si jamais il y a une r�allocation pour agrandir la taille tu risques d'avoir des surprises.

    Si tu veux vraiment utiliser printf, alors utilise la m�thode .c_str() de std::string pour obtenir un pointeur sur une chaine de caract�res contig�e, mais, comme tu l'as d�ja entendu plusieurs fois et que je vais encore r�p�ter, printf en C++ c'est fini!

  4. #4
    Membre �clair�
    Avatar de Claude URBAN
    Homme Profil pro
    Prendre le temps de vivre. . .
    Inscrit en
    Mai 2006
    Messages
    274
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Prendre le temps de vivre. . .

    Informations forums :
    Inscription : Mai 2006
    Messages : 274
    Par d�faut
    Bonjour,

    � tous pour ces excellentes informations.

    A vous relire une prochaine fois. (j'ai encore beaucoup de lacunes... )

    Claude

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [VB.NET] Comment comparer 2 tableaux de string
    Par vijeo dans le forum VB.NET
    R�ponses: 4
    Dernier message: 04/12/2007, 20h59
  2. R�ponses: 0
    Dernier message: 22/08/2007, 09h11
  3. [Tableaux] Query Strings 2-probs
    Par MrBean02 dans le forum Langage
    R�ponses: 6
    Dernier message: 16/07/2007, 10h07
  4. tableaux de String dans un vector
    Par aymanouch dans le forum Langage
    R�ponses: 2
    Dernier message: 08/04/2007, 12h04
  5. R�ponses: 4
    Dernier message: 28/08/2006, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo