Esercizio 6
Scrivere un programma C++ cha acquisita una stringa memorizzi tutte le parole in essa contenute in un array di stringhe.
Anche in questo caso si è preferito usare il carattere "_"
invece che lo spazio " ", per migliorare la visualizzazione
dello stato della stringa.
La stringa in ingresso viene processata per eliminare gli spazi superflui,
come si è gia visto nell'esercizio precedente. In output viene riportato
la posizione degli spazi residui memorizzato nel vettore V.
#include<iostream>
#include<string>
using namespace std;
main(){
string s="__La_nebbia__agli___irti_colli___pioviginando___sale__",sub;
int i=0,j=0,c=1;
bool trovato;
int V[100]={0};
while(i<s.size()){
trovato=false;
if(s[i]=='_' && s[i+1]=='_'){s.erase(i,1);trovato=true;}
if(trovato==false)i++;
}//fine while
if(s[0]=='_')s.erase(0,1);
if(s[s.size()-1]=='_')s.erase(s.size()-1,1);
cout << s<<endl;
j=0;
for(i=0;i<s.size();i++)
if(s[i]=='_'){
c++;
V[j]=i;
j++;
}
cout<<"\nparole:"<<c<<endl;
j=0;
while(V[j]!=0){cout<<" "<<V[j];j++;}
string T[c];
sub=s.substr(0,V[0]);T[0]=sub;// 1°elemento
j=1;i=1;
while(j<c){
sub=s.substr(V[j-1]+1,V[j]-V[j-1]-1);
T[j]=sub;
j++;
}v
for(i=0;i<c;i++)cout<<endl<<T[i];
} //fine main
La stringa verrà poi splittata usando il metodo substr() per memorizzare le singole parole nel vettore di stringhe T. Per una implementazione concreta usare il carattere " " al posto di "_".