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;
}