Ok..ti ringrazio veramente tanto per tutto quello che mi ha detto finora!!
c'è un problemino..
ecco il codice
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_DIM 20
typedef struct Elenco{
char info[MAX_DIM];
struct Elenco *next;
} Elenco;
typedef Elenco * puntElenco;
puntElenco inserisci(puntElenco L, char*word){
puntElenco q;
q=(puntElenco)malloc(sizeof(Elenco)); //crea un elenco allocandolo sulla memoria dinamica
strcpy(q->info,word);
q->next=L; //lega al resto della lista
return(q); //ritorna al nuovo puntatore della lista
}
//definizione funzione di inserimento in lista
puntElenco InserisciElementoInLista(puntElenco L,char*parola){
puntElenco q=L, prec;
int PosTrovata=0;
if(q==NULL){ // lista vuota
q=inserisci(L,parola);
return(q);
}
//lista con una parola con inseriemnto in testa
if(strcmp(q->info,parola)>=0){
q=inserisci(L,parola);
return q;
}
//lista con almeno una parola più inserimento dopo la prima parola
while (q!=NULL && (PosTrovata==0))
{
if(strcmp(q->info,parola)<0)
{
prec=q;
q=q->next;
}
else
PosTrovata=1;
}
prec->next=inserisci(q,parola);
return (L);
}
//definizione funzione di visualizzazione lista
void VisualizzaLista(puntElenco L){
puntElenco q=L;
printf("\nLista parole:\n\n");
while(q!=NULL){
printf("%s\n",q->info);
q=q->next;
}
printf("\n");
}
void ContaVocaliParola(char parola[], int *pvocali){
char c;
int count;
while((c= toupper(parola[count]))!= '\0') {
if (c== 'A' || c== 'E' || c== 'I' || c== 'O' || c== 'U' )
++ *pvocali;
count++;
}
}
void ContaVocaliLista(puntElenco L){
int i=0;
puntElenco q=L;
printf("le vocali sono:\n\n");
while(q!=NULL){
ContaVocaliParola(q->info, &i);
q=q->next;
}
printf("\n");
}
int main (){
puntElenco el_parole=NULL;
el_parole = NULL;
int scelta,a=1;
int vocali=0;
int max=0;
char word[MAX_DIM]={'\0'},lunga[MAX_DIM]={'\0'};
do{
//creazione MENU
printf("SCELTA OPERAZIONE \n");
printf("\nPREMI 1:-----------INSERISCI PAROLA---------------------\n");
printf("PREMI 2:-----------VISUALIZZA LISTA-----------------\n");
printf("PREMI 3:----------VISUALIZZA VOCALI IN LISTA-----------\n");
printf("PREMI 4:----------------USCITA-----------------\n");
printf("\nScelta: ");
scanf("%d",&scelta);
if(scelta==1){
printf("Digita la parola da inserire: ");
scanf("%s",word);
el_parole=InserisciElementoInLista(el_parole,word);
}
//definizione delle possibili scelte
if(scelta==2) VisualizzaLista(el_parole);
if(scelta==3) ContaVocaliLista(el_parole);
if(scelta==4) a=0;
if(scelta!= 1 && scelta!= 2 && scelta!= 3 && scelta!=4) printf("\nScelta non valida\n\n");
} while(a!=0);
return 0;
}
mi da errore qui
while((c= toupper(parola[count]))!= '\0') {
e mi dice
In function `void ContaVocaliParola(char*, int*)':
`toupper' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)