Ciao a tutti ho un problema con la programmazione in C++ in quanto ho necessità di inserire, in una stringa di caratteri, due spazi vuoti ogni volta che appare un determinato simbolo. Ho già fatto il programma con il ciclo FOR e poi inserendoci un IF, copiando gli elementi della stringa in un'altra stringa, ma a me serve farlo attraverso una funzione INSERISCI che utilizzi sempre la stessa stringa. Mi serve, cioè, qualcosa del genere:
Inserisci i caratteri:
ab-c
N = 4
Input = ab-c
N = 6
Output = ab- c
Il problema riguardante il calcolo della stringa l'ho risolto, ma non riesco a risolvere il problema dell'inserimento di caratteri nella stringa, perché non è come un inserimento in una data posizione, ma è dato da una particolare condizione.. Il vecchio programma che ho scritto è
codice:
#include <iostream>
#include <iomanip>
#include <cstring>
using namespace std;
int main ()
{
char frase1 [100];
char frase2 [300];
int lungh_frase1;
int lungh_frase2;
int i;
int j;
cout << "inserisci i caratteri senza lasciare spazi (simbolo - per lo spazio):\n";
cin >> frase1;
lungh_frase1 = strlen (frase1);
cout << "N = " << lungh_frase1 << "\n";
cout << "Input = " << frase1 << "\n";
for (i=0; j=0; i < lungh_frase1; i++) {
frase2[j] = frase1[i];
j++;
if (frase1[i] == '-') {
frase2[j] = ' ';
j++;
frase2[j] = ' ';
j++; }
}
frase2[j] = '\0';
lungh_frase2 = strlen (frase2);
cout << "N = " << lungh_frase2 << "\n";
cout << "Output = " << frase2 << "\n";
cout endl;
return 0;
}