Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme char+pointeur

Sujet résolu
    29 juin 2006 à 20:40:30

    Bonjour tout le monde.

    Voilà, j'essaye de faire un fonction qui reécrit une chaine à l'envers
    (simple entrainement)

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

    void reverse (char *ch[]);
    int main (void)
    {
        char phrase = 'le chien se promene';
        reverse (&phrase[1]);
       
         printf ("%s", phrase);   
       
       
        system("PAUSE");
        return 0;
    }

    void reverse (char *ch[])
    {
         long i;
         long n;
         long longueur = strlen (ch);
    for (i=0;i<longueur;i++)
    {
     *ch[i]= longueur;
     longueur --;   
    }

    }


    Mais je reçois l'erreur suivante lors de la compilation :
    invalid types `char[int]' for array subscript
    • Partager sur Facebook
    • Partager sur Twitter
      29 juin 2006 à 21:03:57

      salut!
      je pense que comme sa sa marchera un peu mieux
      #include <stdio.h>
      #include <string.h>
      #include <stdlib.h>

      void reverse (char ch[]);
      int main (void)
      {
          char phrase[] = "le chien se promene";
             
          reverse(phrase);
             
          printf("%s \n",phrase);   
         
         
          system("PAUSE");
          return 0;
      }

      void reverse (char ch[])
      {
           long i,longueur = strlen (ch)-1,n = longueur;
      //le strlen (ch)-1 c'est pour ne pas tombé sur le \0 meme s'il n'est pas compté dans le tableau les valeur commance a 0 alors que strlen commance par le 1
               char temp;

              for (i=0;i<n;i++)
              {
                       temp   = ch[i];//variable temporaire
                       //on échange les valeur
                       ch[i]  = ch[n];
                       ch[n]  = temp;
                       n--;//on décrémante

              }
             

      }
      • Partager sur Facebook
      • Partager sur Twitter
        29 juin 2006 à 22:24:12

        char phrase = 'le chien se promene';
        reverse (&phrase[1]);

        Si tu sors du code comme ça après avoir lu les cours, tout ce que je peux te proposer de faire c'est de les relire.
        Les chaines sont délimitées par "" et non par '', le premier indice est 0 et non 1... Tu utilises * en plus de []... tu assignes longueur et tu le décrémente, sais-tu simplement pourquoi tu as mis c'est deux lignes ? Pur hasard ?
        *ch[i]= longueur;
        longueur --;

        Oh oui, c'est joli, mais bon...
        • Partager sur Facebook
        • Partager sur Twitter
          29 juin 2006 à 23:28:37

          Oui, je vais relire les cours :-°

          ça marche :D merci, mais c'est pas tout !!! j'ai compris aussi :p !
          • Partager sur Facebook
          • Partager sur Twitter

          probleme char+pointeur

          × 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