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 :

Créer une méthode avec string.


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Créer une méthode avec string.
    Bonjour,
    Je reviens encore pour une question que je crois simpliste.
    En fait voici mon code
    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
    26
    27
    28
    #include <iostream>
    #include <string>
    using namespace std;
     
     
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
         while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
     
     
     
        return 0;
    }
    Je voudrais en faire une méthode que j'utiliserais. J'ai essayé quelque mais ça ne marche pas, voici mon code avec une méthode.
    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
    26
    27
    28
    29
    30
    31
    32
    #include <iostream>
    #include <string>
    using namespace std;
     
    string validation(string s1,string s2)
    {
      while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
     
    }
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        validation;
     
     
     
        return 0;
    }
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    ça ne marche pas,
    Plus de précision, SVP.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par trainingevth Voir le message
    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
    26
    27
    28
    29
    30
    31
    32
    #include <iostream>
    #include <string>
    using namespace std;
    
    string validation(string s1,string s2)
    {
      while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
    
    }
    
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        validation;
    
    
    
        return 0;
    }
    Rappelle voir comment on appelle une fonction ?

    + Ta fonction est sensée retournée un string, en tous cas c'est ce que tu écris.
    + Le passage des paramètres peut être amélioré.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Ok, je vais voir ce que je peux faire. Merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    En fait je voudrais savoir si mon programme peut devenir une sorte de fonction.
    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
    26
    27
    28
    29
    #include <iostream>
    #include <string>
    using namespace std;
     
     
     
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        while (s2.size()!=s1.size())
                {
                cout << "* ERREUR! La deuxieme chaine de bits doit avoir la meme longueur"<<endl;
                cout<<"que la premiere chaine de bits avec "<<s1.size()<<" caracteres"<<endl;
                cin>>s2;
                }
                if (s1.size()==s2.size())
                    {
                    cout<<"bravo!";
                    }
     
     
        return 0;
    }

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tout peut devenir une fonction, il s'agit de comprendre ce qu'est une fonction, comment elle fonctionne, et comment on l'appelle.

    Pour t'aider plus avant, je t'invite d'abord à nous dire en quelque mots:
    • Ce que tu penses qu'est une fonction
    • Ce que sont les paramètres, comment ils fonctionnent en C++
    • Comment on appelle une fonction
    • Ce qu'est main()


    En question subsidiaire, pourrais-tu dire ce que signifie const et ce qu'est une référence.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Puisqu'apparemment tu n'as pas lu, ou compris mon message. validation; n'est certainement pas la syntaxe d'appel d'une fonction.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre régulier
    Homme Profil pro
    Thésard
    Inscrit en
    Mars 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Thésard
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 54
    Points : 78
    Points
    78
    Par défaut
    En fait tu as créer une fonction qui prend deux arguments (s1 et s2).
    Tu dois donc appeler ta fonction validation comme ceci :
    Par ailleurs je vois que ta fonction nommée validation doit te retourner un string mais il n'y a aucun return. Tu n'as pas besoin de return pour ce qu'elle est sensée faire. Tu peux donc la déclarer en void :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void validation(string s1, string s2)
    Pour comparer deux chaînes, je t'invite à faire à utiliser la méthode "compare". Si elle te retourne 0, les deux chaînes sont identiques, si elle te retourne 1, elles ne le sont pas :
    Bon courage !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bousk j'ai lu ton message, cependant j'ai fait un programme où j'appelais une fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool valide_entier(char t[],int &e)
    Donc je croyais que pour les types string ce serait la même chose.

    Leternel,

    • une fonction est c++ est une de boite qui renvoi une valeur et peut faire plusieurs directives que l'ont a définit.
    • les paramètres sont les directives de la fonction
    • le main c'est là où le programme commence

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci Betaplus, je vais voir si ça marche cette fois.

  11. #11
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Correction de mes questions:

    Ce que tu penses qu'est une fonction
    une fonction est c++ est une de boite qui renvoi une valeur et peut faire plusieurs directives que l'ont a définit.
    Une fonction est un traitement créant une valeur, et pouvant avoir des effets de bord.
    La valeur est celle retournée par la fonction, au moyen de l'instruction return.
    Les effets de bords sont les effets perceptibles autres que la valeur retournée: affichage ou allocation mémoire, par exemple.

    Si l'instruction est l'atome de fonctionnement du programme, la fonction représente une action plus ou moins complexe.
    Le fait d'avoir un nom permet aux fonctions de clarifier le code qui l'utiliser.

    Il existe un type de fonction particulier, les fonctions membres (ou méthodes), qui appartiennent à un type d'objets. (c'est le cas de string::size(), que tu as utilisée).

    Ce que sont les paramètres, comment ils fonctionnent en C++
    les paramètres sont les directives de la fonction
    Les paramètres d'une fonctions sont ce qui permet de définir la situation où travaille la fonction.

    Par exemple, l'opération d'addition est définie de manière général, et 2+3 est un cas concret. Dans cet exemple, 2 et 3 définissent la situation où s'applique l'addition.

    Les paramètres sont des variables. Elles sont locales à la fonction, mais créé avec des valeurs dépendantes de son appel.
    Cela signifie que les valeurs sont copiées dans de nouvelles variables, qui seront détruites à la fin de l'appel. Cela a son importance.

    Comment on appelle une fonction
    Soit la fonction déclarée par int ma_fonction(int a, int b).
    L'appel d'une fonction est une expression constituée du nom de la fonction, suivi des valeurs à donner à chaque paramètre.
    Cette expression aura pour valeur la valeur retournée par l'appel de la fonction

    Ainsi, on peut avoir ce code-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main() {
        return ma_fonction(1, 2+3);
    }
    Ceci consiste en une fonction main retournant la valeur de l'appel de ma_fonction pour les arguments 1 et 2+3.

    Ce qu'est main()
    le main c'est là où le programme commence
    C'est surtout une fonction retournant un entier.
    Il s'avère que l'exécution d'un programme est intégralement constitué de l'appel de cette fonction.

    Elle peut être définie avec deux arguments permettant de lire les arguments dits de ligne de commande.


    Quant à ton dernier message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool valide_entier(char t[],int &e)
    Ceci n'est pas un appel de fonction, mais une déclaration.
    C'est reconnaissable à plusieurs choses:
    • les paramètres ont un type
    • le nom de la fonction est précédé d'un type.


    Tu remarqueras d'ailleurs que e est une référence sur un entier, et qu'il sera donc possible de modifier l'entier que l'appelant utilisera en guise de paramètre.
    En effet, bien que la référence sera locale à la fonction, toute modification d'une référence modifie le référé, donc l'entier possédé non pas par la fonction, mais son appelant.

    Pour l'illustration, le programme suivant affiche uniquement "chouette".
    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
    #include <iostream>
    void erreur(int entier) {
        entier *=2;
    }
     
    void doubler(int & entier) {
        entier *=2;
    }
    int main() {
        int i = 2;
        erreur(i);
        if (i==4) std::cout << "perdu" << std::endl;
        doubler(i);
        if (i==4) std::cout << "chouette" << std::endl;
        return 0;
    }
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool valide_entier(char t[],int &e)
    Ceci n'est pas plus la syntaxe d'appel d'une fonction... c'est au mieux la syntaxe de ce qui précède son implémentation.

    Que tu passes des int, string, void* ou const Toto&, la syntaxe ne change en rien, faut juste l'écrire correctement..
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2011, 16h57
  2. Réponses: 3
    Dernier message: 01/02/2010, 15h54
  3. Réponses: 1
    Dernier message: 05/10/2009, 22h13
  4. Créer une méthode avec un timeout
    Par damien77 dans le forum Débuter avec Java
    Réponses: 35
    Dernier message: 20/02/2009, 16h05
  5. [Image]Créer une image avec JAVA 1.1
    Par burno dans le forum 2D
    Réponses: 4
    Dernier message: 11/08/2004, 09h19

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