Exercice

  1. Déclarer et initialiser deux tableaux de caractères (ch1 et ch2).

  2. Écrire une fonction (lg_chaine1) qui admette en paramètre un tableau de caractères se terminant par un null, et qui rende le nombre de caractères du tableau (null exclu).

  3. Écrire une fonction (lg_chaine2) qui implémente le même interface que lg_chaine1, mais en donnant à son paramètre le type pointeur vers char.

  4. La procédure main imprimera le nombre d'éléments de ch1 et ch2 par un appel à lg_chaine1 et lg_chaine2.

#include <stdio.h>

#define NULL_C '\0'
char ch1[] = "cette chaîne comporte 35 caractères";
char ch2[] = "et celle ci fait 30 caractères";

/*****************************************************************************/
/*                                                                           */
/*                              lg_chaine1                                   */
/*                                                                           */
/*   But:                                                                    */
/*      calcule la longueur d'une chaîne de caractères                       */
/*                                                                           */
/*   Interface:                                                              */
/*      ch : la chaîne de caractères                                         */
/*      valeur rendue : la longueur de ch                                    */
/*                                                                           */
/*****************************************************************************/
int lg_chaine1(const char ch[])
{
int i = 0;

while (ch[i] != NULL_C) i++;   /*   équivalent a while(ch[i]) i++;   */

return(i);
}
/*****************************************************************************/
/*                                                                           */
/*                              lg_chaine2                                   */
/*                                                                           */
/*   But:                                                                    */
/*      identique à celui de lg_chaine1                                      */
/*                                                                           */
/*****************************************************************************/
int lg_chaine2(const char *ch)
{
int i = 0;

while (*ch != NULL_C)
   {   i++; ch++;  }

return(i);
}
/*****************************************************************************/
/*                              main                                         */
/*****************************************************************************/
int main(void)
{
printf("la longeur de ch1 est %d\n",lg_chaine1(ch1));
printf("la longeur de ch2 est %d\n",lg_chaine2(ch2));

return 0;
}



Matthieu Moy 2017-02-08