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 :

split string [debutant]


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut split string [debutant]
    Bonjour,
    je cherche une methode permettant de decomposer une chaine de caractere.
    J'ai bien vu de nombreuse methode avec boost,mais je cherche à utiliser la methode split de c++
    J'ai trouvé ce code, mais je comporend pas bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int main()
    {
       String* words = S"this is a list of words, with: a bit of punctuation.";
       Char chars[] = {' ', ', ', '->', ':'};
       String* split[] = words->Split(chars);
     
       IEnumerator* myEnum = split->GetEnumerator();
       while (myEnum->MoveNext()) {
          String* s = __try_cast<String*>(myEnum->Current);
          if (!s->Trim()->Equals(S""))
             Console::WriteLine(s);
       }
    }
    QUelqu'un peut il m'expliquer ?

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    A vue d'oeil, j'aurais déjà tendance à dire qu'il ne s'agit pas d'un code C++, ou du moins, pas d'un code "pur C++"

    Les terme Console, Char, String, __try_cast et WriteLine me feraient presque penser à du C# éventuellement ou à du C++ (en C++ "pur", nous n'aurions pas accès à l'espace de noms Console, et donc, l'instruction WriteLine ou __try_cast n'existeraient pas, sans compter que nous utiliserions char et string (sans majuscules) ) utilisant le framework microsoft...

    Mais, l'un dans l'autre:

    Tu définis la valeur de la chaine de caractères à séparer (ici "this is a list of words, with: a bit of punctuation.")
    Puis tu définis les (chaines de) caractères à utiliiser comme séparateur (un espace, une virgule suivie d'un espace, une"fleche" -> et les deux points ":")

    Ensuite, tu invoque la méthode "Split" de la classe "String" qui prend en argument un tableau représentant les différents séparateurs définis et qui renvoie un tableau des sous chaines trouvées sur base de ces séparateurs.

    tu demande ensuite d'obtenir un énumérateur des différentes chaines trouvées avec la méthode GetEnumerator qui est fournie par le tableau de chaines de caractères

    Tant qu'il y a un énumérateur (et donc, une chaine de caractère), tu demande de transtyper cet énumérateur en une chaine de caractère, et, si la suppression des espaces surnuméraires (avant et apèrs) ne te donne pas une chaine vide, tu demande d'afficher le mot sur une ligne dans la console
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ce code est du Managed Extensions for C++, l'horrible première mouture de "C++ .Net".

    Je te conseille d'utiliser du C++ pur, ou de passer à Visual 2005 ou 2008 pour programmer en C++/CLI à la place.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Explode Split strings
    Par Montor dans le forum Contribuez
    Réponses: 0
    Dernier message: 03/12/2009, 11h36
  2. Réponses: 6
    Dernier message: 17/09/2007, 16h46
  3. split string longueur variable
    Par krina85 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/09/2007, 16h31
  4. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06
  5. split(String)
    Par keke33 dans le forum Langage
    Réponses: 11
    Dernier message: 03/06/2004, 15h44

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