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 :

string et cstring et les remplacement des caractéres


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut string et cstring et les remplacement des caractéres
    salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include<string>
    #include<algorithm>
    #include<cstring>
    int main(){
    using std::string;
       using std::cout;
       using std::endl;
       using std::replace;
     
    string s="a-zA-Z";
    string s2="\xC0-\xDF";//les caracteres accentuée
    string line="hi how are youéà&)àç__ç)"
    d'abord est ce que cette structure est correcte (string s="a-zA-Z" et string s2="\xC0-\xDF") je veux affecter un intervalle a un string si cette structure et incorrecte svp donner moi le correcte solution?;
    et j'ai besoin d'une fonction qui remplace dans line tous les caracteres de s par '0'?
    je sais q'il ya une fonction comme ca
    replace(line.begin(),line.end(),'d','0'); ca remmplace tous les d par 0;mais comment faire si on veux remplacer tous les caracteres de s par 0???
    et merrrrci

  2. #2
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    std::regex semble plus appropriée dans ce cas.

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    merci .je ne veux pas utiliser regex par ce que j'ai trouver beaucoup de problèmes avec cette solution.

  4. #4
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    sans regex, une boucle peut éventuellement faire l'affaire.

    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
    #include <iostream>
    #include <string>
    #include <algorithm>
     
    int main() {
     
    	std::string d = "abcdef...ABCD...."; // la flemme mais faut écrire toutes les lettres ^^
    	std::string line="hi how are youéà&)àç__ç)";
     
    	for(char c: d) {
    		std::replace(line.begin(), line.end(), c, '\0');
    	}
     
    	std::cout << line << std::endl;
     
    	return 0;
    }

  5. #5
    Membre actif
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Par défaut
    merci beaucoup mr ,comment affecter les caractéres accentuée a un string soit les majuscules ou les minuscules?si j’utilise la valeur hexadécimale des caractères accentuée comment affecter les a une string et merci beaucoup beaucoup.
    par exmple j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string s="abcdefghijklmnopqrstuvwxyz";
    string line="hello world560@\`";
    je veux remplacer tous les caractere qui n'appartient pas a s dans line avec 0;
    est ce que je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(char c: !s) {
    	   std::replace(line.begin(), line.end(), c, '0');
     
                }
    je pense ca na marche pas comme ca comment faire ca svp?

  6. #6
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Tu peux faire un truc comme ç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
    21
    22
    23
    24
    25
     
    #include <iostream>
    #include <string>
    #include <algorithm>
     
    int main() {
     
    	std::string d = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPKRSTUVWXYZ";
    	std::string line="hi how are youéà&)àç__ç)";
     
    	auto it = line.begin();
     
    	while(it != line.end()) { // pour tous le caracteres de line
    		if(d.find(*it) == std::string::npos) { // si le caractere n'est pas dans d
    			it = line.erase(it); // on le vire
    		}
    		else if(it != line.end()) { // sinon on passe au caractere suivant
    			++it;
    		}
    	}
     
    	std::cout << line << std::endl;
     
    	return 0;
    }
    Par contre je commence à avoir honte d'écrire ce genre de truc en sachant que les regex font partis de la std

    edit: et le temps d'exec doit être assez degueulasse aussi, un string ça doit être un vector<char> non trié (en gros) donc les recherches / suppressions c'est long

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

Discussions similaires

  1. Remplacer des caractères avec la fonction string.replace
    Par chtom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2008, 16h43
  2. [RegEx] Remplacer des caractères dans une string
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 22h26
  3. Remplacer des caractères
    Par James.T dans le forum C++
    Réponses: 3
    Dernier message: 11/02/2006, 18h56
  4. Réponses: 3
    Dernier message: 27/06/2005, 16h24
  5. Fonction permettant de remplacer des caractères
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 06/09/2004, 15h48

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