Salut les gars,
J'écris une fonction de recherche dans une liste chainée. Le but est de faire une recherche par titre. Donc je recherche une chaine de caractère dans cette liste.Mais cela me donne une erreur logique.
Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
int search_by_titre(Controle* liste_musique,char *titre)
{
    Musique *tempo=liste_musique->debut;
    char *titre_cp,*titre_cp2;
    if((titre_cp=(char *)malloc(18*sizeof(char)))==NULL)return -1;
    if((titre_cp2=(char *)malloc(18*sizeof(char)))==NULL)
    {
        free(titre_cp);
        return -1;
    }/*titre_cp recoit le titre que l'on veut rechercher*/
    strcpy(titre_cp,titre);
    titre_cp=toupper_text(titre_cp);
    printf("%s",titre_cp);system("pause");
    int asd=3;
    while(tempo!=NULL||asd!=0)
    {
        strcpy(titre_cp2,tempo->titre);
        titre_cp2=toupper_text(titre_cp2);
        asd=strcmp(titre_cp2,titre_cp);
        printf("%d",asd);
        printf("%p",tempo);system("pause");
        printf("%s\n",titre_cp2);system("pause");
        printf("%p",tempo);system("pause");
        tempo=tempo->next_one;
    }
    if(asd!=0)
    {
        printf("\tMusique introuvable\n");
    }
    else
    {
        //printf("\t")
        //affichage de la musique
    }
    return 0;
}
J'ai utiliser les printf juste pour débuger un peu.
Merci déjà pour votre aide et tout amélioration..