| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment remplacer un texte arbitraire à cordes en C + +
    La bibliothèque C + + chaîne dispose de plusieurs fonctions utiles pour la manipulation des chaînes , mais aucune recherche générale et remplacer . Bien qu'il y ait beaucoup d'informations sur des algorithmes optimisés pour la mise en œuvre remplacement de texte arbitraire , de nombreux algorithmes impliquent des structures de données complexes et difficiles à suivre les techniques telles que l'arithmétique des pointeurs . Pour la plupart des programmes , de recherche et de remplacement n'est pas un goulot d'étranglement de performance , il est donc plus judicieux d'utiliser un algorithme simple, facilement compréhensible. Ceci est possible en profitant de quelques-unes des fonctions de chaînes existantes pour gérer la manipulation de bas niveau. Instructions
    1

    Ecrire le contour de votre fonction de remplacement de la chaîne :

    replaceSubstring de chaîne ( string source , string match , chaîne replace ) {string out = ""; retourneront ; }
    2

    Ajouter une boucle qui trouve tous les matches de chaîne dans la chaîne . Les lastpos variable sera utile lorsque vous commencez à ajouter du code pour construire la nouvelle chaîne :

    size_t pos = 0; //Démarrer la recherche au premier lastpos charactersize_t = 0 ; while (( pos = source.find ( ! match pos) ) = string :: OSBL) //boucle jusqu'à ce que aucune correspondance n'est trouvée {pos = pos + match.lengh (); //Démarrer la recherche pour le prochain match à la fin de cette matchlastpos = pos ;}
    3

    construire la chaîne de production que des correspondances sont trouvées :

    size_t pos = 0; //Démarrer la recherche au premier lastpos charactersize_t = 0 ; while (( pos = source.find (correspondance , pos) ) = string :: OSBL) //boucle jusqu'à ce que aucune correspondance n'est trouvée { sortie + = source.substr ( lastpos , pos - lastpos ) ; ! //Ajouter tous les caractères qui ont été ignorés overoutput + = remplacer ; pos = pos + match.lengh (); //Démarrer la recherche pour le prochain match à la fin de cette matchlastpos = pos ;} sortie + = source.substr ( lastpos ) ; //Ajouter le reste de la chaîne source Photos

    Previous :

    next :
      articles connexes
    ·Comment trouver un maximum dans le tableau en C 
    ·Comment puis-je écrire un fichier CSV en C # 
    ·Comment initialiser un tableau en C 
    ·Comment créer un Func_Train dans GtkRadiant 
    ·Comment utiliser les tableaux de caractères à deux di…
    ·Comment faire pour intégrer dans Python 
    ·Qu'est-ce qu'une Fragment de code C 
    ·Comment faire pour convertir C + + ASCII en UTF8 
    ·Comment rechercher une chaîne dans la mémoire tampon …
    ·Comment Correction d'un échec d'assertion Visual C 
      articles en vedette
    ·Comment se connecter au serveur MySQL 
    ·Comment mettre à jour les variables de session à part…
    ·Comment réparer R6025 fonction virtuelle pure Appel 
    ·Comment créer un fichier BAT 
    ·Comment faire pour activer InnoDB dans MySQL 5 avec cPa…
    ·Comment faire pour installer un formulaire de grande di…
    ·Java Runtime Exec Tutorial 
    ·Comment synchroniser et de stabiliser SDLC 
    ·Comment faire pour vérifier la version de MySQL Script…
    ·Comment définir Mnémonique associations clés avec Vi…
    Copyright © Connaissances Informatiques http://fr.wingwit.com