Ciao a tutti. Premetto: STO IMPAZZENDO! XD Allora, la prof giovedì ha dato la seguente traccia di un programma da fare in C: data una stringa, stampare a video le lettere che la compongono e il numero di volte che si ripetono. Es. la parola "pippo" dovrebbe far stampare a video questo:
codice:
p 3
i 1
o 1
Io ho provato a creare un algoritmo, ho fatto anche diagramma di flusso e ci ho fatto tanto ragionamenti sopra... conclusione?? Trovo che sia fatto giusto, ma il problema è che alla fine il risultato non è quello desiderato. Per il momento mi sono limitato a creare una stringa composta da lettere che non si ripetono:

codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char parola[20],parolaF[20];
    int i,j,cont=0;
    bool flag = false;

    printf("Inserisci parola: ");
    gets(parola);

    for (i=0;i<strlen(parola);i++)
    {
        for (j=0;j<strlen(parola);j++)
        {
            if (parola[i] == parola[j])
            {
                if (flag == false)
                {
                    parolaF[cont] = parola[i];
                    cont++;
                    flag = true;
                }
            }
        }
        flag = false;
    }

    parolaF[cont] = '\0';

    printf("%s\n",parolaF);

    system("pause");
    return 0;
}
Se ad esempio inserisco la parola "casa", non solo la lettera "a" viene ripetuta 2 volte, ma la prima lettera ("c") viene anche eliminata e davvero non riesco a spiegarmi il perchè. Se c'è qualcuno che mi potrebbe dare una mano, mi sarebbe davvero di grandissimo aiuto! ^^