edutecnica

Esercizio 7        

Scrivere un programma C++ che, acquisita una stringa, esegua la ricerca e la sostituzione di una data sottostringa assegnata.


In C++ non c’è una funzione precostituita per eseguire la ricerca e la sostituzione di una stringa in un testo ma alcuni metodi che possono essere applicati a scelta; quello più semplice combinato di find() e replace().

#include <iostream>
#include <string>
using namespace std;
main(){
 string s = "AB123 CD539 W123 ZZ BH546 C123X";
 cout<<s<<endl;
 string x = "123";
 string y = "___";
 int pos =-1;

 while (pos += y.length()){
   pos = s.find(x, pos);
   if (pos == string::npos)break;
   s.replace(pos, x.length(), y);
 }
 cout << s << endl;
}//fine main

In questo caso la sottostringa "123" presente nella stringa originale viene sostituita dalla sottostringa "___". Non necessariamente la stringa cercata e quella sostituita devono avere lo stesso numero di caratteri.