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 :

mod�le de string ?


Sujet :

C++

  1. #1
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut mod�le de string ?
    Salut � tous,

    Je me demandais comment on faisait un mod�le de string en C++ ? Je m'explique : disons j'ai la variable
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    string filename("fichier_#_machin.jpg");
    et je voudrais remplacer # par un chiffre. Et voudrais pouvoir le faire sans trop de manip. Du genre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    filename.replace('#', '13');
    Bien sur, la fonction replace des string C++ ne fait pas ca, trop facile. Une id�e ?

  2. #2
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Bonjour,

    tu tombes bien, je viens juste d'implementer une fonction qui fait �a:
    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
    /**
    * @brief replace all occurence of a string by another string, into a given string
    * 
    * @param str string in wich something must be replaced
    * @param sb string that must be replaced
    * @param sa string that sb must be replaced by
    * @return the string that result of this replacement
    */
    std::string& replace(std::string& str, const std::string sb, const std::string sa)
    {
    	std::string::size_type n, nb = 0;
     
    	while ((n = str.find(sb,nb)) != std::string::npos)
    	{
    		str.replace(n,sb.size(),sa);
    		nb = n + sa.size();
    	}
     
    	return str;
    }
    et avec les commentaires pr�ts pour doxygen

  3. #3
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    tr�s bien

    je vais voir tout de meme si je dis pas des betises car je crois bien que la m�thode replace permet de faire ca sans trop d'effort (ie en une ligne de code)

    en tout cas merci pour ta r�activit�

  4. #4
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Yep, si tu trouves comment faire plus simple, tu posteras la solution stp?

  5. #5
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    Yep. Voil�

    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(void){
     
    string original("fichier_#");
    string token("#");
    string replacement("14");
     
    original.replace(original.find(token, 0),
                              token.length(),
                              replacement);
     
    cout << original << endl;
    }
    donne:
    Voila voila

  6. #6
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    uh
    le seul probl�me �tant qu'il modifie la chaine de caract�re original, ce que je ne veut pas ^^

  7. #7
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Il suffit de faire une copie avant.
    Merci pour le retour positif

  8. #8
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. sed - occurences d'un mod�le dans un string
    Par slig_80 dans le forum Shell et commandes GNU
    R�ponses: 4
    Dernier message: 12/03/2013, 13h28
  2. �liminer un caractere d'un string
    Par no-vice dans le forum Langage
    R�ponses: 5
    Dernier message: 09/08/2002, 14h55
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    R�ponses: 4
    Dernier message: 15/07/2002, 09h47
  4. R�ponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    R�ponses: 12
    Dernier message: 17/05/2002, 15h23

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