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;
}