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++Builder Discussion :

Comment extraire un mot d'une chaîne ? c++ builder starter


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut Comment extraire un mot d'une chaîne ? c++ builder starter
    Bonjour,

    Comment extraire un mot d'une chaîne ?

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string machaine;
    machaine = "Comment programmer en langage C++ ?";
    Je voudrais extraire le mot "programmer"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    manouvellechaine = "programmer"; Edit1->Text = manouvellechaine;
    En Delphi, j'utilise la fonction Pos.

    Existe t-il une fonction analogue en C++ ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Pour retrouver la position d'un texte dans un texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    size_t pos = machaine.find( "programmer" );

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    Merci Dalfab

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 2
    Par défaut char*
    Bonjours,
    Si tu connais la chaine avant d'aller fouiller dedans.

    Tu peux récupérer les caractères avec leur position dit par "index"
    maChaine[3] -> Si tu veux le 3ème caractère.
    couplé à une boucle pour qu'elle récupère [3] au [11] par exemple.

    En espérant être clair.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    En indexant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i = 0; i < 10; i++)
      machaine = index[3].chaine;
    Merci SuDoMy

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    machaine = "Comment programmer en langage C++ ?";
    if (size_t pos = monjeu.find("erreur")) Edit1->Text ="ok";
    Pas d'erreur de compil, par contre le résultat est faux car "erreur" n'est pas dans machaine

    Mon code doit être inexact. Qu"en pensez-vous ?

    Merci d'avance

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string machaine = "Comment programmer en langage C++ ?";
    if (size_t pos = monjeu.find("Comment")) Edit1->Text ="ok";
    Pas d'erreur de compil non plus et n'indique pas ok!!!

    La fonction find ne retourne pas un booléen (elle est du type size_t), elle retourne la position trouvée ou sinon npos.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    size_t pos = monjeu.find("pas d'erreur");
    if ( pos != std::string::npos ) Edit1->Text ="ok";

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    Ça marche dalfab

    Encore merci ...

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    Ca marche ... (Je n'arrive pas à ajouter la balise code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
    // extraire un mot et le supprimer dans un string
    std :: string machaine= "programmer en langage c++";
      size_t pos = machaine.find("langage" );
      if (pos != std::string::npos)
        {
         monjeu.erase(pos,7);  // supprime le mot à partir de pos
         Edit1->Text = machaine.c_str();
        }
    }

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    machaine.erase(pos,7) et non monjeu.erase(pos,7); Mais bon ...

Discussions similaires

  1. Extraire un mot d'une chaîne de caractères
    Par persé dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 13/06/2013, 09h20
  2. [À télécharger] Comment extraire les mots d'une chaîne ?
    Par pottiez dans le forum Téléchargez
    Réponses: 0
    Dernier message: 09/11/2010, 17h38
  3. Comment extraire des mots dans une phrase (chaine de characteres)
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/07/2008, 18h54
  4. [Débutante] Extraire un mot d'une chaîne
    Par biba13 dans le forum Pascal
    Réponses: 12
    Dernier message: 16/04/2008, 15h08

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