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

  1. 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
    1. robychanca
       
      C'est un tableau de N chaines de caractères...
      0
    2. 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
    3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      met donc la déclaration de tes variables que nous puissions y voir plus clair. Et éventuellement ton allocation mémoire.
      0
    4. 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
    5. 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