« Exercices en langage C/Chaines » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
+ subtilités caractères-octets
m Formatage, ajout de code
Ligne 6 : Ligne 6 :


<div style="width:70%; float:left">{{Boîte déroulante|titre=Solution|contenu =
<div style="width:70%; float:left">{{Boîte déroulante|titre=Solution|contenu =
La fonction doit recevoir une chaîne de caractères. Une chaîne de caractères en C est un tableau de caractères, finissant par le caractère nul. La fonction doit donc recevoir un pointeur vers le premier élément du tableau, de type <tt>char *</tt>, et chercher l'élément nul.
La fonction doit recevoir une chaîne de caractères. Une chaîne de caractères en C est un tableau de caractères, finissant par le caractère nul. La fonction doit donc recevoir un pointeur vers le premier élément du tableau, de type <code>char *</code>, et chercher l'élément nul.


La fonction recevant un pointeur, il faut donc s'assurer qu'il est valide. On doit donc tester si le pointeur est nul ou non avant de regarder ce qui se trouve dans le tableau de caractères.
La fonction recevant un pointeur, il faut donc s'assurer qu'il est valide. On doit donc tester si le pointeur est nul ou non avant de regarder ce qui se trouve dans le tableau de caractères.
Ligne 30 : Ligne 30 :
Ici, on a choisi de retourner la valeur -1 si le pointeur est nul.
Ici, on a choisi de retourner la valeur -1 si le pointeur est nul.


La boucle de recherche de l'élément nul peut être aussi écrite avec un <tt>for</tt>:
La boucle de recherche de l'élément nul peut être aussi écrite avec un <code>for</code>:
<source lang="c">
<source lang="c">
#include <stdlib.h>
#include <stdlib.h>

Version du 23 juillet 2017 à 01:35

Longueur d'une chaîne de caractères (pour manipuler)

Écrire une fonction C calculant la longueur en octets d'une chaîne de caractères, donnée en argument.

A titre d'exercice, pas utiliser la fonction strlen() du fichier d'include string.h.

Longueur d'une chaîne de caractères (par une fonction)

Écrire un programme lgChaine.c :

  • qui lit des chaines de caractères tapées au clavier (flux stdin);
  • qui calcule la longueur de chaque chaîne entrée et l'affiche ainsi que sa longueur;
  • qui s'arrête si l'utilisateur ne frappe que la touche Entrée ou si le fichier est fini (Ctrl-D tapé par l'utilisateur).

Vous utiliserez :

  • une des fonctions déclarée dans stdio.h.
  • la fonction strlen, ainsi que d'autres si nécessaire, déclarée dans string.h.