C Warning passing arg 1 'strcomp'

Lila85 - 4 janv. 2010 à 04:37
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 4 janv. 2010 à 22:04
Bonjour,

J'ai un souci de pointeur pas cool et je ne vois pas comment m'en sortir.
Le jeu etant de comparer les deux tableaux passe en parametre d'entres.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "position.h"


int position (char *moi, int taille, char *alea, int cinq){
    int i = 0;
    int j = 0;   
    int pos = 0;
    
for (i = 0; i < 5; i++){
    
    for (j = 0; j < 5; j++){   
    
        if (strcmp (moi[i], alea[j]) == 0)
        {       
                   pos++;
    
                   }
    }
}
return pos;
}

Donc la j'ai le message :

[Warning] passing arg 2 of `strcmp' makes pointer from integer without a cast.


Help me please, merci.

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845
4 janv. 2010 à 06:25
Salut,
strcmp (moi[i], alea[j])
moi[i] et alea[j] ne sont pas de types char* mais de type char. D'où l'avertissement.
Soit tu veux comparer les caractères moi[i] et alea[j] et tu peux utiliser l'opérateur de comparaison double égal.
Soit tu veux comparer les tableaux, et dans ce cas il s'agit de strcmp(moi,alea).
Tout dépend de ce que tu veux faire.

Cdlt,
1
Bonjour,

En fait il faut que je compare chaque case du tableau, moi et alea contiennent des entiers de 1 a 8. Il s'agit d'un master mind et je dois donc trouver les chiffres a la bonne place ainsi que les chiffres bon mais pas a la bonne place.

Dois je utiliser strncmp pour parcourir chaque case?

Merci deja pour l'éeclaircissement.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845
4 janv. 2010 à 22:04
Dans ce cas, ce n'est pas strcmp ni strncmp qu'il faut utiliser.
Remplace : if (strcmp (moi[i], alea[j]) == 0)
Par if (moi[i]==alea[j])

Par contre, je ne vois pas ce que tu veux faire avec cette fonction. Es-tu sûr de l'algorithme ?
0