Salve a tutti, mi sono appena iscritto al forum dopo aver letto qualche guida presente sul sito. Sto facendo il primo anno di ingegneria informatica e mi sto preparando per l'esame su c++. Oggi mi sono ritrovato avanti un problema con gli array di tipo char. In pratica la prova d'esame del prof. chiede di comprimere un vettore char contenente le iniziali dei colori: verde, bianco, nero. Quindi il nuovo array deve essere il seguente: "b7n3v7..." cioé quante volte si ripetono consecutivamente i colori. Spero di essere stato chiaro. Comunque faccio il mio programmino, e anche se la sintassi mi sembra corretta quando stampo il vettore mi escono dei simboli. Vado con il debug e mi accorgo che il vettore non memorizza i numeri, di preciso memorizza "nv/b...". In realta dovrebbe essere "n7v7b2...". Utilizzo Microsoft visual studio. Questo è il codice della procedura.
codice:
void comprimi_vettore(char vett[256], char compresso[256])
{
int ripetizione = 1;
int j = 0;
int i = 0;
while ( i < 256)
{
compresso[j] = vett[i];
i++;
// fiche' i vettori sono uguali il secondo ciclo avanza
// e aumenta il contatore per le ripetizioni
while (compresso[j] == vett[i])
{
ripetizione++;
i++;
}
// al vettore compresso viene aggiunto le volte che il colore si ripete
// e avanza di una posizione pronto per la prossima lettera
if (ripetizione != 1)
{
j++;
compresso[j] = ripetizione;
ripetizione = 1;
}
else
{
j++;
}
}
}