Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur dans déclaration de ma fonction!

incompatible types in assignment

    20 décembre 2006 à 22:10:36

    L' objectif n' est pas d' utiliser strchr de la librairie string.h mais de réaliser l' exercice de M@téo qui nous demande de coder nous même ces fonctions de la librairie string.h.

    J' essaye de coder la fonction "strchr". La lettre 'a' = un chiffre? Donc pourquoi ne puis je pas transmettre cette valeur à ma fonction (int?)lorsque je fait l' appel à la fonction dans le "main"?

    Ci dessous, le descriptif de l' erreur que je ne comprends pas....

    C:\Documents and Settings\Marc\Bureau\DevC++\ChainesDeCarractères\StringRechercheCarractere\main.c incompatible types in assignment 13


    #include <stdio.h>
    #include <stdlib.h>

    char* strchr (const char* chaine‚ int carractereARechercher);


    int main(int argc‚ char *argv[])
    {
      char chaine [] = "salut";
      char carractereARechercher = 'a';
      char chaineReponse [100];
     
      chaineReponse = strchr (chaine‚ carractereARechercher);
     
      printf ("La reponse est : %s!\n\n"‚ chaineReponse);
     
     
     
     
      getchar();   
      return 0;
    }


    char* strchr (const char* chaine‚ int carractereARechercher)
    {
          int i = 0;
          int j = 0;
          char chaineAPartirCarractere [100];
         
          for (i=0; i != '\0'; i ++)
          {
              if (chaine [i] == carractereARechercher)
              {
                         while ( chaine [i] != '\0')
                         {
                               chaineAPartirCarractere[j] = chaine[i];
                               i++; 
                               j++;                     
                         }
                         return chaineAPartirCarractere;
              }
              else
              {
                  printf ("%c n' est pas present dans la chaine de carractere!"‚ carractereARechercher);
              }
          }     
    }


    Merci

    Blackspine.
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2006 à 22:12:24

      Salut,

      Premièrement, le nom de fonction strchr est déjà prit dans string.h, donc si tu veux l'utiliser, je te déconseille d'inclure cet en-tête.

      De plus... où est ta fonction strchr ? Où est-elle codée ?
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2006 à 13:13:31

        Citation : Pas de titre

        C:\Documents and Settings\Marc\Bureau\DevC++\ChainesDeCarractères\StringRechercheCarractere\main.c incompatible types in assignment 13



        Pourriez vous me renseigner sur la signification de ce message d' erreur?

        Merci bcp!
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2006 à 13:28:48

          Cela veux dire que tu assignes une valeur incompatible avec le type d'une de tes variables.

          Dans ton cas, tu renvoies un pointeur de chaine un tableau static (encore mieux!) à un tableau (également) static, c'est interdit.

          Le pointeur d'un tableau est constant, cela veut dire que tu ne peut pas le modifier. Et un tableau static est local, cela veut dire que son espace mémoire n'est alloué que pendant la durée de la fonction où il a été définit.

          Bref, relie le cours sur les pointeurs.

          Et puis je ne sais pas ce que tu as mis à la place des virgules mais ça a fait planter la compilation chez moi, bizarre...

          Encore une chose : Si ton prototype de fonction indique qu'une valeur est renvoyée, alors il faut renvoyer quelquechose! (Même NULL)
          Or, si la condition du if n'est pas remplie, ta fonction ne renvoie rien, ce n'est pas très propre.


          EDIT : Le mot caractère ne prend qu'un 'r'.
          • Partager sur Facebook
          • Partager sur Twitter
            22 décembre 2006 à 14:13:38

            Je tiens juste à prévenir tous les débutants (comme moi) de la pertinence du tutoriel de thomasc (Tutos des Zéros - C/C++ - "Les pointeurs en c/C++" pour la réalisation des exercices de M@téo sur les "chaînes de caractères".
            Je pense qu' il n' est pas inutile de relire le chapitre de M@téo sur les pointeurs puis de se plonger dans ce tutoriel de thomasc pour bien acquérir toutes les subtilités de ses propos....

            Blackspine

            P.S.: maintenant je vais essayer de "relooker" ce code absurde.... ^^
            • Partager sur Facebook
            • Partager sur Twitter

            Erreur dans déclaration de ma fonction!

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown