Recherce Fonction C
Résolu
Damien
-
assia -
assia -
Bonjour à tous je suis actuellement en BTS IG et je travail sur un programme personnel je voudrais savoir si il existe une fonction pour renvoyer le nombre de chiffre d'un entier?
c'est à dire sui je saisi 1234 que la fonction me renvoi 4
Merci d'avance
c'est à dire sui je saisi 1234 que la fonction me renvoi 4
Merci d'avance
A voir également:
- Recherce Fonction C
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
8 réponses
Salut,
Il te suffit de saisir ton nombre en tant que chaine de caractères (%s) au lieu de valeur (%i). Il te suffit alors d'afficher un strlen(ton_nombre_en_%s).
Il te suffit de saisir ton nombre en tant que chaine de caractères (%s) au lieu de valeur (%i). Il te suffit alors d'afficher un strlen(ton_nombre_en_%s).
Le probleme c'est que je doit utiliser les nombre que je recupère pour des calculs donc je ne peux pas utiliser la fonction strlen.
Tu peux le faire manuellement mais c'est assez lourd :
Avec une fonction récursive qui fait des modulo sur des tranches de 10,100,1000 etc. Récursive parce qu'elle doit s'appeler elle-même si le résultat est supérieur a 0 (ce qui veut dire que cette tranche là existe). Valeur de retour : la position de la tranche qui équivaut à ce que tu recherches
Avec une fonction récursive qui fait des modulo sur des tranches de 10,100,1000 etc. Récursive parce qu'elle doit s'appeler elle-même si le résultat est supérieur a 0 (ce qui veut dire que cette tranche là existe). Valeur de retour : la position de la tranche qui équivaut à ce que tu recherches
Désolé mais etant vraiment débutant dans la programmation C il faudrait m'expliquer l'utilisation de la fonction sprintf().
Désolé Stupflip mais c'est sur que ta solution est bien trop compliqué pour moi enfin merci quand même.
Désolé Stupflip mais c'est sur que ta solution est bien trop compliqué pour moi enfin merci quand même.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors sprintf fait la même chose que printf, à la différence près qu'il le rentre dans un buffer.
En pratique tu auras un truc genre :
int valeur_chiffree;
char valeur_char[TAILLE];
valeur_chiffree=1234;
sprintf(valeur_char,"%i",valeur_chiffree);
printf("\nTaille : %i\n",strlen(valeur_char));
En pratique tu auras un truc genre :
int valeur_chiffree;
char valeur_char[TAILLE];
valeur_chiffree=1234;
sprintf(valeur_char,"%i",valeur_chiffree);
printf("\nTaille : %i\n",strlen(valeur_char));
Salut,
peut-être qch comme ça ?
peut-être qch comme ça ?
int nb, nbChiffres; if( nb ) nbChiffres = log10(abs(nb)) + 1; else nbChiffres = 1;
Attention au fait que tout ce qui a été dit avant n'est vrai que s'il s'agit d'entiers positifs. Pour compter le nombre de chiffres on peut faire ainsi :
#include <string.h> #include <ctype.h> #include <stdio.h> unsigned int nb_digits(double d){ unsigned int i,res=0,n; char buffer[255]; unsigned int i,n; sprintf(buffer,"%lf",d); n = strlen(buffer); for(i=0;i<n;++i){ if(isdigit(buffer[i])) ++res; } return res; }