Problème avec strncmp...

Résolu
robychanca -  
 robychanca -
Bonjour,

J'ai les lignes de code suivantes qui font partie d'une fonction qui doit permettre de retrouver dans le tableau "nch" l'ensemble des noms commençant par une lettre entrée par l'utilisateur et stockée dans la variable "pl"

do {
if (strncmp(nch[i], pl, 1)==0) {
puts(nch[i]) ;
k++ ;
}
i++ ;
}
while(i<N) ;

Le problème c'est qu'à l'exécution, le programme se plante dès l'entrée dans la boucle. Quelqu'un peut-il m'aider à trouver pourquoi?

Merci d'avance pour vos réponses!

1 réponse

PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
 
La variable nch rassemble un tableau de pointeur sur des chaines de caractères ?
0
robychanca
 
C'est un tableau de N chaines de caractères...
0
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
 
La variable i est-elle bien initialisée à 0 ?

Le tableau a-t-il bien était alloué ?

Si tu boucles sur le tableau en faisant :

 for (i = 0; i < N; ++i) printf("%s\n", nch[i]);"


Ca ne pose pas de problèmes ?

Pourquoi utiliser strncmp si c'est juste pour vérifier le premier caractère ? Autant faire :

if (nch[i][0] == pl)
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
met donc la déclaration de tes variables que nous puissions y voir plus clair. Et éventuellement ton allocation mémoire.
0
robychanca
 
J'ai essayé if (nch[i][0] == pl) et ça marche.

Merci à PeterPeterPeter et à tous les autres qui se sont intéressé au problème.

A bientôt!
0
robychanca
 
robychanca - 18 jun 2010 à 14:00
J'ai essayé if (nch[i][0] == pl) et ça marche.

Merci à PeterPeterPeter et à tous les autres qui se sont intéressés au problème.

A bientôt!
0