Ciao, ho un piccolo problema con questo esercizio:
a) Scrivere un sottoprogramma C analizzastringa che riceve come parametri un array di
caratteri str, un carattere c ed un intero conteggio. Il sottoprogramma conta il numero di caratteri
uguali a c in str. Se il numero è uguale a conteggio, il sottoprogramma ritorna 1, altrimenti
ritorna 0.
b) Scrivere un programma C che apre un file di testo testo.txt contenente una serie di lunghezza
indefinita (zero o più) di parole ciascuna lunga al massimo 15 caratteri. Il programma analizza
ciascuna parola mediante il sottoprogramma analizzastringa e stampa a video le parole in cui
la lettera iniziale compare una sola volta. Nota: si considerino una lettera minuscola e la
corrispondente maiuscola diversi. Ad esempio, se il file contiene la seguente sequenza:
A a alla Ad --- Esempio
Il programma stamperà a video:
A a Ad --- Esempio
la parte a) l'ho fatta velocemente:
#include <string.h>
#include <stdio.h>
#define dim 20
#define dim1 1
#define max_s 100
int analizzastringa(char s[], char c[], int a){
int i;
int len;
int conteggio=0;
len=strlen(s);
int risultato;
for(i=0; i<len; i++){
if(c[0]==s[i]){
conteggio++;
}
}
if(conteggio==a){
risultato=1;
}else{
risultato=0;
}
return risultato;
}
int main(){
char a[dim+1];
char b[dim1+1];
int c;
printf("scrvi una frase \n");
fgets(a, dim+1, stdin);
printf("scrivi una lettera: ");
fgets(b,dim1+1,stdin);
printf("scrivi un numero: ");
scanf("%d", &n);
printf("risultato:");
printf("%d", analizzastringa(a,b,n));
return 0;
}
ma non riesco a capire la parte b) come faccio a scorrere un FILE e fargli capire che ad ogni inizio parola deve prendere la prima lettera e verificare che non ci siano ripetizioni?