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 :

la fonction c_str()


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 13
    Points
    13
    Par défaut la fonction c_str()
    voila je travaille sur un code développé par une autre personne, et je ne comprends pas cette fonction, je ne sais pas ce qu'elle fait....

    line.find(cmd): je crois qu'elle envoie la position du mot cmd

    je sais que atof fait la conversion string->double

    et puis c'est tout, par contre la ligne du milieu je ne comprend pas ce qu'elle fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char * c = line.c_str() + pos + cmd.length();
    ???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    double getValue(string & line, string & cmd)
     
    {
     
    	int pos = line.find(cmd);
     
    	const char * c = line.c_str() + pos + cmd.length();
     
    	return atof(c);
     
    }
    merci de m'éclairer si vous savez.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    La fonction c_str() renvoie un pointeur sur la chaine contenue dans le string.
    Il y une ou deux discussions en cours à ce sujet.
    Après l'exécution de la ligne, c pointe sur la chaine line, décalée de pos + la longueur de cmd.
    Par exemple si line = "abcdefgh"
    cmd="def"
    pos=4;
    c pointe sur "a...." + 4 + 3
    c point sur "g..."

    Il est possible que pos vaut 3 au lieu de 4, je ne sais plus.
    Cela s'appelle l'arithmétique des pointeurs.
    De toute façon, l'auteur veut certainement pointer sur le premier caractère de ligne qui suit cmd.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. animé un text +la fonction c_str()
    Par aboishak dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/08/2008, 10h28
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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