Bonjour a tous et merci par avance d'essayer de resoudre mon probleme.
L'exo consiste a inserer/supprimer/rechercher des patronimes dans un tableau.
Mon probleme vient du fait que j'arrive a compiler le prog (j'utilise codeblocks) mais que quand je lance l'exc ca plante.


J'ai 6 warning dans mon programme qui je pense sont la cause du plantage de la fenetre ms-dos.
Les 6 warnings sont :

warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
warning: passing arg 1 of `strcmp' makes pointer from integer without a cast

a chaque fois que je veux comparer ou copier mon tableau d'entier (ou chaque case pointe vers une chaine de caractere (patronime) )avec mon char rentrer par l'utilisateur.

Si vous aviez une idée de comment contourner ceci et qu'au moins je puisse lancer mon prog et voir ce qui marche et ce qui ne marche pas ... je vous en serez reconnaissant

Merci d'avance.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define N 20
int T[N];
int i;
 
int inserer(char *s){
        int compteur=0;
        int n=0;
        char temp;
 
 
        for(i=0;i<(strlen(s)-1);i++){
            temp=s[i];
            compteur=compteur +(temp-96);
        }
        while(n<5){
                if(strcmp(T[compteur%N],"")!=0){
                    temp=s[0];
                    compteur=compteur + 13*temp;
                    n++;
                }
                else{
                    strcpy(T[compteur%N],s);
                    return 1;
                }
 
        }
return 0;
}
 
 
 
int rechercher(char *s){
 
    for(i=0;i<N;i++){
        if(strcmp(T[i],s)!=0)
            return 0;
        else
            return 1;
    }
}
 
int supprimer(char *s){
 
     for(i=0;i<N;i++){
        if(strcmp(T[i],s)!=0)
            return 0;
        else{
            strcpy(T[i],"");
            return 1;
        }
     }
}
 
 
 
int main(){
        char *s;
        int i;
        int choix;
        for(i=0; i<N; i++)    /*initialisiation de T a 0*/
            strcpy(T[i], "");
        //int bool=1;          //booleen
 
        while(1){
                printf("Entrez votre choix \n");
                printf("1-Inserer \n");
                printf("2-Rechercher \n");
                printf("3-Supprimer \n");
                printf("4-Fin du programme \n");
 
                if(scanf("%d",&choix)==0)
                    return EXIT_FAILURE;
 
                switch(choix){
                        case 1:
                            printf("Entrez un patronyme en minuscule\n");
                            if (scanf("%s",s)==0)
                                return EXIT_FAILURE;
                            printf("Vous avez choisi la commande inserer \n");
                            if(inserer(s)==0)
                                printf("Le patronyme n'a pu etre inserer \n");
                            else
                                printf("Le patronyme a été inserer \n");
                            break;
 
                        case 2:
                            printf("Entrez un patronyme en minuscule\n");
                            if (scanf("%s",s)==0)
                                return EXIT_FAILURE;
                            printf("Vous avez choisi la commande rechercher \n");
                            if(rechercher(s)==0)
                                printf("Le patronyme n'est pas présent dans le tableau \n");
                            else
                                printf("Le patronyme est présent dans le tableau \n");
                            break;
 
                        case 3:
 
                            printf("Entrez un patronyme en minuscule\n");
                            if (scanf("%s",s)==0)
                                return EXIT_FAILURE;
                            printf("Vous avez choisi la commande supprimer \n");
                            if(supprimer(s)==0)
                                printf("Le patronyme ne fait pas partit du tableau et n'a donc pas pu etre supprimer \n");
                            else
                                printf("Le patronyme a bien été supprimer avec succes \n");
                            break;
 
                        case 4:
                            printf("Entrez un patronyme en minuscule\n");
                            if (scanf("%s",s)==0)
                                return EXIT_FAILURE;
                            printf("Vous avez choisi la commande fin \n");
                            return EXIT_SUCCESS;
                            //break;
                        default:
                            printf("Vous n'avez pas choisi une commande valide \n");
                            printf("Veuillez refaire un choix \n");
                            break;
 
                }
 
 
 
        }
return EXIT_SUCCESS;
}