Originariamente inviato da Nitro_Insane
forse il 3° parametro della funzione ricerca deve essere un char *, così quando la richiami puoi passare il puntatore canzone!
Hai ragione, avevo dimenticato che canzone era un vettore di caratteri e quindi nella funzione andava passato come puntatore o vettore... Ho risolto così:
codice:
#include <stdio.h>
#include <string.h>
struct song{
char titolo[20];
char autore[20];
char genere[10];
};
typedef struct song Brano;
//prototipi
void lettura(Brano *vettore, int elem);
void stampa(Brano *vettore, int elem);
void ricerca(Brano *vettore, int elem, char *canzone);
int main ()
{
int elem;
char canzone[20];
int i;
printf("Inserisci il numero di canzoni da includere nella Playlist: ");
scanf("%d",&elem);
Brano vettore[elem];
fflush(stdin);
lettura(vettore,elem);
stampa(vettore,elem);
//STAMPA IL MENU
printf("\n1. Ricerca brano per titolo;\n");
printf("2. Visualizzazione numero canzoni per genere;\n");
printf("3. Salva la playlist nel file compilation;\n");
printf("4. Esci.\n");
int scelta;
scanf("%d",&scelta);
switch(scelta){
case 1:
printf("Inserisci il nome del brano da cercare:\n");
fflush(stdin);
gets(canzone);
ricerca(vettore,elem,canzone);
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
printf("\nScelta non consentita!\n");
}
system("pause");
return 0;
}
void lettura(Brano *vettore, int elem){
int i;
for(i=0;i<elem;i++){
printf("\nBrano numero %d\n",i+1);
printf("Titolo: ");
gets(vettore[i].titolo);
printf("Autore: ");
gets(vettore[i].autore);
printf("Genere: ");
gets(vettore[i].genere);
}
}
void stampa(Brano *vettore, int elem){
int i;
printf("\nHai inserito questi brani\n");
for(i=0;i<elem;i++){
printf("Titolo: %s\n",vettore[i].titolo);
printf("Autore: %s\n",vettore[i].autore);
printf("Genere: %s\n",vettore[i].genere);
}
}
void ricerca(Brano *vettore, int elem, char *canzone){
int i;
int trovato=1;
for(i=0;i<elem && trovato!=0;i++){
trovato=strcmp(vettore[i].titolo,canzone);
}
i--;
if(trovato==0){
printf("Brano trovato!\n");
printf("Titolo: %s\n",vettore[i].titolo);
printf("Autore: %s\n",vettore[i].autore);
printf("Genere: %s\n",vettore[i].genere);
}
else
printf("Brano non trovato!\n");
}
Grazie