ancora niente... non riesco ad inserire 2 spazi anziché uno.. il programma funziona inserendo un solo spazio e calcola il numero di caratteri finale in modo giusto, ma non so come fare per inserire 2 spazi anziché uno..
codice:* Description: Assegnato un array frase ad N componenti di tipo carattere * ed un'informazione reale AST di tipo carattere, inserire * dopo ogni componente il cui valore coincide con quello di * AST due spazi bianchi */ #include <iostream> #include <iomanip> #include <cstring> using namespace std; int main () { char frase1 [100]; // parola inserita char frase2 [300]; // parola modificata int lungh_frase1; // lunghezza parola inserita int lungh_frase2; // lunghezza parola in uscita int i; // indice che fa scorrere tutte le lettere della parola inserita int j; // indice che fa scorrere tutte le lettere della parola modificata cout << "Inserisci i caratteri senza lasciare spazi (simbolo - per lasciare spazio):\n"; cin >> frase1; lungh_frase1 = strlen (frase1); // calcola la lunghezza della parola inserita cout << "N = " <<lungh_frase1 << "\n"; // numero di lettere inserite cout << "Input = " <<frase1 << "\n\n"; // dà lettura delle lettere inserite for (i=0, j=0; i<lungh_frase1; i++) // inizializza gli indici per scorrere la frase1 // ed assegnare le lettere alla frase2 { frase2[j]=frase1[i]; // assegna le lettere della frase1 alla frase2 j=j+1; if (frase1[i]=='-') { // ogni volta che viene inserito - si aggiungono 2 spazi frase2[j]='- '; j=j+1; } } frase2[j] = '\0'; lungh_frase2 = strlen (frase2); // calcola la lunghezza della parola in uscita cout << "N = " << lungh_frase2 << "\n"; // numero di lettere in uscita cout << "Output = " << frase2 << "\n"; // dà lettura delle lettere in uscita cout << endl; return 0; }

Rispondi quotando