Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako nahradiť ľubovoľný text v reťazci v C + +

+ + string knižnica C má niekoľko užitočných funkcií pre manipuláciu reťazca , ale žiadne všeobecné hľadanie a nahradenie . Hoci tam je veľa informácií o optimalizovaných algoritmov pre implementáciu ľubovoľného nahradenie textu , mnoho algoritmov zahŕňať komplexné dátové štruktúry a tvrdé - to - nasledovať techniky , ako je ukazovateľ aritmetiky . U väčšiny programov , vyhľadávanie a nahrádzanie nie je výkon prekážkou , tak to dáva väčší zmysel použiť jednoduchý , ľahko pochopiteľný algoritmus . To je možné s využitím niektorých existujúcich funkcií string zvládnuť manipuláciu s low - level . Pokyny
1

Napíšte obrys vášho náhradné reťazec funkcie :

string replaceSubstring ( zdroj string , string zápas , string vymeniť ) { string out = " " , vráti sa ; }
2

Pridať slučku , ktorá nájde všetky podreťazec zápasoch v reťazci . Variabilný lastpos bude užitočné , keď začnete pridávať kód postaviť nový reťazec :

size_t pos = 0 , //Spustiť hľadanie na prvých charactersize_t lastpos = 0 ; while ( ( pos = source.find ( ! zápas , pos ) ) = string :: neziskové organizácie ) //slučka , kým sú nenájdený žiaden zápas { pos = pos + match.lengh ( ) ; //Spustiť hľadania pre budúci zápas na konci tejto matchlastpos = pos ; }
3

Zostaviť výstupné reťazec , ako sú uvedené zápasov : Spojené

size_t pos = 0 ; //začať hľadať na prvých charactersize_t lastpos = 0 ; while ( ( pos = ! source.find ( zápas , pos ) ) = string :: neziskové organizácie ) //slučka , kým sú nenájdený žiaden zápas { výstup + = source.substr ( lastpos , pos - lastpos ) //Pridať všetky znaky , ktoré boli preskočené overoutput + = nahradiť ; pos = pos + match.lengh ( ) ; //Spustiť hľadania pre budúci zápas na konci tejto matchlastpos = pos ; } výstup + = source.substr ( lastpos ) ; //Pridať zvyšok zdrojového reťazca

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené