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

MFC Discussion :

Ajouter un caractère à la fin d'une chaine de caractères.


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 18
    Points
    18
    Par défaut Ajouter un caractère à la fin d'une chaine de caractères.
    Bonjour,

    J'essaie de perturber (apporter des modifications sur les valeurs de tous les champs) une matrice de chaines de caractères sauf que je ne sais pas comment le faire...

    J'ai écrit ce code mais il y a une erreur au niveau de la compilation :
    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
    std::vector<std::vector<std::string> > TextData::Perturb(char noise)
    {
    	std::vector<std::vector<std::string> > l_mResult;
     
    	for(int i = 0; i < m_iNBColumn; i++)
    	{
    		std::vector<std::string> l_vColumn;
    		for(int j = 0; j < m_iNBRow ; j++)
    		{
    			l_vColumn.push_back(m_Matrix[i][j] + noise);  
    		}
    		l_mResult.push_back(l_vColumn);
    	}
    	return l_mResult;
    }
    Et les erreurs sont :
    error C2676: '+'*binaire : 'std::basic_string<_Elem,_Traits,_Ax>' ne définit pas cet opérateur ou une conversion vers un type acceptable pour l'opérateur prédéfini.
    error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)'*: impossible de déduire l'argument modèle pour 'const std::reverse_iterator<_RanIt> &' à partir de 'std::string'

    Ce que je voulais faire est d'ajouter un caractère à la fin de ma chaine de caractères, je pense que la concaténation ne se fait pas avec un simple "+" comme c'est le cas pour les entiers, double...
    Quelqu'un pourrait m'éclaircir les lanternes sivouplé ?
    Merci et bon dimanche !

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Quel est le type de m_Matrix ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Bonjour 3DArchi,
    Au fait, j'ai apporté des modifications sur mon code depuis que j'ai posté, voici la version améliorée :
    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
    std::vector<std::vector<std::string> > CategoricalData::AddCharac(char noise)
    {
    	std::vector<std::vector<std::string> > l_mResult;
     
    	for(int i = 0; i < m_iNBColumn; i++)
    	{
    		std::vector<std::string> l_vColumn;
    		for(int j = 0; j < m_iNBRow ; j++)
    		{
    			l_vColumn.push_back(std::string(m_Matrix[i][j]).append(1, noise));
    		}
    		l_mResult.push_back(l_vColumn);
    	}
    	return l_mResult;
    }
    Et la déclaration de m_Matrix est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector<std::vector<std::string> > m_Matrix;
    Merci encore une fois.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Etrange,
    Normalement, rien n'interdit d'ajouter un char à un std::string. La fonction : string operator+ (const string& lhs, char rhs); existe bien. Ton erreur doit être ailleurs ?

    Sinon, complètement HS, pourquoi utiliser m_iNBColumn et m_iNBRow plutôt que m_Matrix.size() et m_Matrix[i].size() ? C'est plus sur.

    Autre : Comment convertir une string en un entier ? ou Comment convertir une string en un objet de n'importe quel type ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Oui, je pense que l'erreur n'est pas au niveau de la fonction AddCharac puisque je n'ai pas eu d'erreurs à la compilation.

    J'ai un doute sur la fonction d'affichage par contre. Je mets ce sujet à "Résolu" et je poste mon autre souci dans un thread à part !

    Pour m_iNBColumn et m_iNBRow, au début, ça m'a paru plus simple de les utiliser et puis dans mon fichier Dlg.cpp, j'ai dû utiliser : [I]m_Matrix.size() et m_Matrix.size() :-)

    Merci pour les deux liens, je les regarde.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Ayé, j'ai résolu mon problème... J'avais un problème au niveau de l'affichage et non au niveau de la fonction de concaténation elle-même

    Merci de vos réponses.

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

Discussions similaires

  1. [XL-2003] Placer automatiquement un caractère à la fin d'une chaine de caractère
    Par pomdeterfrite dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/11/2010, 11h00
  2. [Toutes versions] Ajouter une chaine de caractère à la fin d'une autre chaine
    Par esstin dans le forum Excel
    Réponses: 2
    Dernier message: 02/05/2009, 15h54
  3. Enlever la fin d'une chaine de caractères
    Par snyfir dans le forum Langage
    Réponses: 4
    Dernier message: 07/08/2008, 17h41
  4. Réponses: 5
    Dernier message: 02/08/2007, 11h31
  5. Rajout de caractère à la fin d'une chaine
    Par horneth dans le forum VB.NET
    Réponses: 9
    Dernier message: 02/02/2007, 17h20

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