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

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
+ subtilités caractères-octets
Ligne 1 : Ligne 1 :
{{Exercices en langage C}}
{{Exercices en langage C}}
== Longueur d'une chaîne de caractères (pour manipuler) ==
== Longueur d'une chaîne de caractères (pour manipuler) ==
Écrire une fonction C calculant la longueur d'une chaîne de caractères, donnée en argument.
É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 [[w:en:string.h|string.h]].
A titre d'exercice, pas utiliser la fonction strlen() du fichier d'include [[w:en:string.h|string.h]].
Ligne 173 : Ligne 173 :


'''Remarques''' :
'''Remarques''' :
* L'utilisation de <code>fgets</code> est plus sûre que <code>gets</code> ou <code>scanf</code> : fgets permet de limiter le nombre de caractère lu et de ne pas déborder de la variable ''reponse''. Les débordements mémoire sont une source d'erreur fréquente en C.
* L'utilisation de <code>fgets</code> est plus sûre que <code>gets</code> ou <code>scanf</code> : fgets permet de limiter le nombre de caractère (octet) lu et de ne pas déborder de la variable ''reponse''. Les débordements mémoire sont une source d'erreur fréquente en C.
* Ce programme peut ne pas donner les résultats attendus si on redirige sur l'entrée standard un fichier comportant des terminateurs de ligne \r (Mac).
* Ce programme peut ne pas donner les résultats attendus si on redirige sur l'entrée standard un fichier comportant des terminateurs de ligne \r (Mac).
* La fonction <code>strlen</code> de string.h retourne une valeur de type size_t : type non signée donc toujours >=0, unsigned int ou unsigned long selon l'implémentation.
* La fonction <code>strlen</code> de string.h retourne une valeur de type size_t : type non signée donc toujours >=0, unsigned int ou unsigned long selon l'implémentation.

Version du 31 octobre 2012 à 20:11

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.