Uso struct per contare doppie in una parola

di il
2 risposte

Uso struct per contare doppie in una parola

Salve, mi ritrovo davanti questo problema che non riesco a risolvere.
Devo usare le struct per contare se ci sono doppie in una parola, ad esempio:
francesco 0
sasso 1 (sono 2 s consecutive)
gianni 1

Ho creato un programmino che non funziona. Il problema è l'if e sostanzialmente anche il for. Il primo for lo faccio girare per N, numero di stringhe. Il secondo lo dovrei far girare per la lunghezza della stringa. Il problema è forse che non definisco il vettore:strutture come una matrice così da indicarla come vettore_strutture[j] e all'if fare una cosa del genere:
if(vettore_strutture[j]==vettore_strutture[j+1])
Come faccio?

Ecco qui:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 4
#define M 31

typedef struct parola_con_doppie
{
    char stringa[M];
    int cnt_doppie;
}Parola_con_doppie;

int main()
{
    Parola_con_doppie vettore_strutture[N];
    int i, j;

    for(i=0; i<N; i++)
    {
        scanf("%s", vettore_strutture[i].stringa);
        vettore_strutture[i].cnt_doppie=0;
    }

    for(i=0; i<N; i++)
    {
        for(j=0; j<strlen(vettore_strutture[i].stringa)-1; j++)  // il -1 per il \0
        {
            if((vettore_strutture[i].stringa)==(vettore_strutture[i].stringa))
            {
                vettore_strutture[i].cnt_doppie++;
                printf("\n%d", vettore_strutture[i].cnt_doppie);
                getchar(); // per vedere di volta in volta cosa succedeva, ma non entra proprio in questo if.
            }
        }
    }

    for(i=0; i<N; i++)
    {
        printf("\nLinea [%d]: %s %d", i, vettore_strutture[i].stringa, vettore_strutture[i].cnt_doppie);
    }

    return 0;
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte