Annonce

Réduire
Aucune annonce.

Cours langage C n°8 - Fonctions et prototypes

Réduire
Ceci est une discussion importante.
X
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #16
    Voici :

    Code:
    #include <stdio.h>
    
    void generate(const char chaine[], char *str);
    
    int main(void)
    {
        const char ch[] = "bonjour";
        char chaineCache[8];
    
        generate(ch, chaineCache);
    
        puts(chaineCache);
    
        return 0;
    }
    
    void generate(const char chaine[], char *str)
    {
       int i =0;
    
       while(chaine[i] != '\0')
       {
           *(str+i) = '*';
           i++;
       }
    
       *(str+i) = '\0';
    
    }
    deux et deux font cinq

    Commentaire


    • #17
      Voilà une fonction générique (qui fonctionne avec n'importe quelle longueur de chaîne), bien joué

      Commentaire


      • #18
        ça commence à devenir un peu plus complexe...

        Exercice n°1:

        Code:
        #include <stdio.h>
        
        void generate(const char chaine[], char *str); /* prototype de la fonction à construire */
        
        int main(void)
        {
            const char ch[] = "bonjour";
            char chaineCache[8];
        
            generate(ch, chaineCache);
        
            puts(chaineCache); /* Affichage de "*******" sur la console */
        
            return 0;
        }
        
        void generate(const char chaine[], char *str)
        {
            /* À compléter */
            int i = 0;
            while (chaine[i] != '\0')
            {
                if (chaine[i] != '*')
                {
                    *str = '*';
                }
                str++; /* incrémenter de 1 la case mémoire */
                i++;
            }
            /* ne pas oublier le caractère de fin de chaîne '\0' */
        }

        Exercice n°2 :
        Code:
        #include <stdio.h>
        
        int foisDeux(int value); /* Prototype */
        
        int main(void)
        {
            int value = 18;
            int result; /* variable enregistrant le résultat de la fonction foisDeux */
        
            /* Utilisation de la fonction foisDeux à compléter */
            result = foisDeux(value);
        
            printf("Le double de %d est %d\n", value, result); /* Le double de 18 est 36 */
        
            return 0;
        }
        
        int foisDeux(int value)
        {
            return value * 2;
        }
        Mon blog : http://rootsheep.info

        Commentaire


        • #19
          @Sadik,

          Dans le 1er exercice il manque quelque chose, qui en plus est spécifié dans l'énoncé...

          Exercice 2 correct.

          Commentaire


          • #20
            Code:
            void generate(const char chaine[], char *str)
            {
                int i = 0;
                while (chaine[i] != '\0')
                {
                    if (chaine[i] != '*')
                    {
                        *str = '*';
                    }
                    str++; 
                    i++;
                }
                *str = '\0';
            }
            ?

            Sinon je ne vois pas
            Mon blog : http://rootsheep.info

            Commentaire


            • #21
              Oui c'est bon...

              Commentaire


              • #22
                Tout d'abord fred merci pour le temps que tu a consacré aux leçons. Même si un nombre certains de ressources sont/était disponible sur internet, il est vrai que j'ai bien faire plusieurs cours pour en tirer seulement le meilleur.
                Je me refais une petite révision avant d'attaquer la programmation réseau en C (d'ailleurs un membre du forum à de bonnes ressources je suis preneur!).

                Pour échanger par rapport à la leçon, j'ai lu que l'utilisation de la boucle for était privilégier à celle de while car la première est "beaucoup plus puissante".
                Du coup pour les curieux voici ce que ça donne dans une syntaxe débutante :


                Code:
                void generate(const char chaine[], char *str)
                {
                   int compteur;
                
                   for(compteur = 0; compteur < 8; compteur++)
                   {
                      if(compteur == 7)
                         *(str+compteur) = '\0';
                      else
                         *(str+compteur) = '*';
                   }
                }
                Dernière modification par Ephemeral25, 04 novembre 2016, 22h47.
                "la Connaissance pour un éveil de la Conscience"

                Commentaire


                • #23
                  Bonjour,

                  j'ai lu que l'utilisation de la boucle for était privilégier à celle de while car la première est "beaucoup plus puissante".
                  Je ne suis pas d'accord avec cette affirmation, soit tu as mal compris, soit c'est lui qui dit des âneries.

                  while et for sont utilisés dans un rapport de sémantique, pour comprendre il faudra que tu t'inspires de cours d'algorithmique. Puissant est un terme qui ne veut rien dire en informatique.
                  Dernière modification par fred, 06 novembre 2016, 11h17.

                  Commentaire

                  Chargement...
                  X