Salve, devo scrivere un programma che, inserita una stringa, la stampi privandola delle sillabe 'si' e 'no'.
In poche parole inserisco il numero massimo di caratteri e la stringa, questa la copio in un altro array dove andrò ad eliminare le sillabe.
Questa è la funzione dove elimino e stampo:
void StampaEliminazione(char array1[], char array2[], int z){
int i;
int j;
i=1;
j=0;
while(i<z){
if( (array1[i]=='i') && (array1[i-1]=='s') ){
i++;
array2[j]=' ';
array2[j+1]=' ';
j++;
}
else if( (array1[i]=='o') && (array1[i-1]=='n') ){
i++;
array2[j]=' ';
array2[j+1]=' ';
j++;
}
i++;
j++;
}
printf("\nStringa con i caratteri 'si' e 'no' rimossi: ");
for(j=0;j<z;j++){
if(array2[j]!=' '){
printf("%c", array2[j]);
}
}
}
Gli passo l'array inserito e quello in cui eliminare le sillabe e il numero massimo di caratteri.
Il programma compila e funziona, elimina ciò che deve eliminare e stampa i caratteri da non eliminare.
Il problema è che se inserisco la dimensione massima e poi inserisco un numero di caratteri inferiore, alla fine della stringa vengono stampati altri caratteri speciali che non dovrebbero esserci.
Il problema si presenta in maniera del tutto casuale, a volte si e a volte no.
Non so dove sia l'errore