Nombre de chiffres d'un entier

Créez une fonction qui rend le nombre de caractères utilisés pour écrire un entier (positif ou négatif) écrit en base 10. Par exemple 42 est composé de 2 chiffres en base 10, 7 seulement d'un seul et -1 de deux.

Vous implémenterez cette fonction de 3 manières différentes. Vous ajouterez chaque fonction dans le même fichier nombre-chiffres.c.

V1

Utilisez une boucle qui divise par 10 le nombre tant qu'il est > 10 pour coder cette fonction.

Sa signature doit être :

int nb_chiffre_v1(int i);

Testez la fonction codée avec 123456, 0 et -1.

Valeurs de test

Rangez vos trois valeurs de test (123456, 0 et -1) dans un tableau d'entiers et affichez à l'écran leurs valeurs et leurs nombre de chiffres dans une boucle for.

V2

Utilisez la fonction log10 définie dans <math.h> pour coder cette fonction.

int nb_chiffre_v2(int i);
  • vous pourrez aussi être amené à utiliser la fonction ceil de <math.h>
  • Il vous faudra sûrement inclure la bibliothèque math (-lm) lors de la compilation (pour la phase de l'édition de lien)

V3

Utilisez la fonction sprintf définie dans <stdlib.h> et la fonction strlen définie dans <string.h> pour coder cette fonction.

int nb_chiffre_v3(int i);

Attention à sprintf, elle ne renvoie rien. Elle modifie le contenu du pointeur de chaîne de caractères placée n premier paramètre.

Il faut s'assurer d'avoir la place de stocker votre résultat soit en le déclarant soit avec un tableau soit avec un malloc en choisissant bien la taille (nombre de caractères avec un tableau, nombre de bytes avec un malloc), par exemple 100.

Cerise sur le gâteau

Demandez à l'utilisateur de rentrer un entier relatif (vous utiliserez la fonction scanf) dont vous donnerez également le nombre de chiffres.