Problème avec strncmp...

Résolu
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

  1. La variable nch rassemble un tableau de pointeur sur des chaines de caractères ?
    0
    1. C'est un tableau de N chaines de caractères...
      0
    2. 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
    3. Contributeur
      met donc la déclaration de tes variables que nous puissions y voir plus clair. Et éventuellement ton allocation mémoire.
      0
    4. 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
    5. 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