Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de string

    17 avril 2019 à 11:11:50

    Bonjour! Alors, voici mon problème :

    J'ai un exercice où, dans mon programme, je dois demander à l'utilisateur d'insérer 20 prénoms en minuscule avec leur nom associé, puis d'afficher leurs initiales respectives P. N. (par facilité, j'ai réduit ce nombre à 3.) Je me suis alors dit que je pouvais insérer des string dans un tableau 2d au lieu de déclarer 40 string (6 pour la facilité). Or, je n'arrive pas à accéder à la première lettre du prénom (et du nom du coup)... Je ne sais pas comment m'y prendre à vrai dire...

    J'ai donc commencé mon programme ainsi

    #include <iostream>
    #include <string>
    #include <cmath>
    #include <cstdlib>
    
    using namespace std;
    
    void insertion(string tableau[3][2])
    {
        for (int i = 0 ; i < 3 ; i++)
        {
            cout << "prenom " << i+1 << " : ";
            cin >> tableau[i][0];                   // Ligne des prénoms
            cout << "nom " << i+1 << " : ";
            cin >> tableau[i][1];                   // Ligne des noms
        }
    }
    
    int main()
    {
        string prenom_nom[3][2];
        cout << "Veuillez inserer une liste de 3 prenoms et noms : " << endl;
        insertion(prenom_nom);
        
    //ensuite, j'aimerais afficher les initiales, mais impossible 
    //d'accéder à la première lettre de chaque prénom
        
        
        return 0;
    }

    Je suppose alors que je m'y prends mal... De plus, je dois trier des initiales dans l'ordre alphabétique, donc je suppose que je n'ai d'autre choix que d'utiliser un tableau.

    Merci d'avance!

    -
    Edité par FannyWéry 17 avril 2019 à 11:13:07

    • Partager sur Facebook
    • Partager sur Twitter
      17 avril 2019 à 11:42:29

      Lu'!

      Pour les tableaux en C++, utilise plutôt les types std::vector ou std::array. Les tableaux à la C, c'est beaucoup de prise de tête pour ne rien gagner du tout. Par exemple cela pourrait nous donner ici :

      using identite = std::array<std::string, 2> ;
      
      std::vector<identite> les_identites ;
      
      les_identites.push_back({ "Jean", "Dupont" }) ;

      Ensuite, on peut aller un peu plus loin parce qu'on a peut être envie de rendre plus explicite notre code. Par exemple, on peut utiliser une structure pour nommer les éléments d'une identité :

      struct Identite {
        std::string prenom ;
        std::string nom ;
      };

      Ce qui nous permet ensuite d'écrire quelque chose comme :

      struct Identite i ;
      std::cin >> i.prenom ;
      std::con >> i.nom ;
      
      std::vector<Identite> v ;
      v.push_back(i);

      Autres remarque : n'utilise pas using namespace std (raison + que faire).

      -
      Edité par Ksass`Peuk 17 avril 2019 à 11:43:15

      • Partager sur Facebook
      • Partager sur Twitter

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

        17 avril 2019 à 21:35:15

        Ok ça roule, je vais essayer comme ça ;)

        Et merci pour le conseil! C'est vrai que ça peut vite porter à confusion avec namespace std...

        Bonne soirée!

        • Partager sur Facebook
        • Partager sur Twitter

        Tableau de string

        × 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