FORUM Tom's Hardware » Programmation » C / C++ / Java » calculer la longueur d'une variable de type entier HELP!!
 

calculer la longueur d'une variable de type entier HELP!!

Il y a 369 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : calculer la longueur d'une variable de type entier HELP!!
 
Plus d'informations

Bonjours,

voila j'aimerai savoir si il existe une fonction comme "strlen();" mais destinée aux entiers. en effet j'aimerai pouvoir calculer la longueur d'un entier.

Exemple :
int num1=1111;
int num2=22;
longueur de num1= 4;
longueur de num2 = 2;

Si quelqu'un à la reponse surtout qu'il n'hesite pas :)
si un poste existant traite dejas de ce sujet, je suis desole de ne pas l'avoir vu, alors n'hesitez pas à me rediriger :)

Merci

Profil : Pointeur
Plus d'informations

en quel language ?


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

En langage c :) oui autatn pour moi mais le prob est resolut. j'ai fais ma ptite fonction tt seul comme un grand :

int calcul(int nombre){
int i,j=0;
clrscr();
i=nombre;
do{
nombre=nombre/10;
j=j+1;
}while(nombre>0);
printf("L'entier %d est de longueur %d",i,j);
return(j);
getch();
}

Profil : Pointeur
Plus d'informations

1/ balise [code]
2/ méthode clrscr non standard
3/ les méthodes d'output/input n'ont rien a faire dans cette méthode
4/ le getch est innacessible (mais on s'en fou (cfr pt3))


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

bah pour les input/outpout oui je suis d'accord ct juct pour rendre la methode explicite. dans mon prog ma methode donne ceci :

int calcultaille(int nombre){
int j=0;
do{
nombre=nombre/10;
j=j+1;
}while(nombre>0);
return(j);
}

1/Pourquoi clrscr non standard ?
2/ balise[code] ????
3/getch() innacessible ?? il sert just a temporiser pour permettre l'affichage :) soit l'appui sur une touche.

Profil : Pointeur
Plus d'informations

1/ oui :o
2/ vas lire les règles ;)
3/ bha oui puisqu'apres le return :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

ok pour les regles et desolé :) mais pourquoi le clearscreen n'est pas standard ? quel fonction standard la remplace ? merci de ton aide

Plus d'informations

hehe..
aussi:

int GetIntergerStringLenght(const int iInterger){
char p [MAX];
ssprinf(p,"%d",iInteger);
return strlent(p);
}
ou qqch du genre. Mais j'avoue que la division par 10 est beaucoup plus rapide et amene moins de dependances(aucune en fait).

pourquoi faire cent fois la même chose ?
Plus d'informations

avec des grands nombres, diviser par dix ça peut finir par devenir lent...

zeb
Profil : Modérateur libre
Plus d'informations
pourquoi faire cent fois la même chose ?
Plus d'informations

a écrit :

int GetIntergerStringLenght(const int iInterger){.

c'est quoi un Interger ?

ça c'est encore PLUS lent...

pourquoi faire cent fois la même chose ?
Plus d'informations

a écrit :

hehe..
aussi:

int GetIntergerStringLenght(const int iInterger){
char p [MAX];
ssprinf(p,"%d",iInteger);
return strlent(p);
}
ou qqch du genre. Mais j'avoue que la division par 10 est beaucoup plus rapide et amene moins de dependances(aucune en fait).

sprintf renvoie déjà le nombre de caractère écrits (sans \0) lorsqu'il n'y a pas d'erreurs, pas la peine de recompter...

Plus d'informations

pr avoir le nombre de composantes d un nombre voila la meilleure idée:

#include<iostream.h>

#include<math.h>

int main(){
int j=0,nombre;

cout<<"n= "<<endl;
cin>>nombre;
while(nombre>=pow(10,j))
j++;
cout<<"n="<<j;
return 0;

}

pourquoi faire cent fois la même chose ?
Plus d'informations

absolument pas non, tu calcule plusieurs puissances.
la meilleure solution c'est le sprintf, car on peut réutiliser la chaine.

zeb
Profil : Modérateur libre
Plus d'informations

anassoulih> Et la balise code ?
anassoulih> Et répondre après 7 mois ?

Moi, je ne vois pas pourquoi le résultat d'un logarithme ne vous convient pas :(

Plus d'informations

oui ,peut etr,j ai des rectifications a faire:
#include<iostream.h>

#include<math.h>

int main(){
int j=1;double nombre;


cout<<"n= "<<endl;
cin>>nombre;
if(!nombre)
cout<<"le nombre de composantes est 1";
else while(fabs(nombre)>=pow(10,j))
j++;
cout<<"n="<<j;
return 0;

}

de plus,j ai commencé les cours de c++ il y a un mois alors je suis encore un amateur,on a meme pas fai ni les tablo ni les fcts :)

zeb
Profil : Modérateur libre
Plus d'informations

anassoulih> Et la balise code ? (bis)
anassoulih> Et un effort de rédaction, non plus ?

Tu ne veux pas comprendre ?


Message édité par zeb le 01-03-2007 à 00:20:52
Plus d'informations

a toi d etre plus explicite,je veu bien aprendre de toi,et j ai pa compri ce que ca veu dire balise:)

zeb
Profil : Modérateur libre
Plus d'informations

A toi de lire les règles, de les comprendre, de les appliquer.....

Quant à la rédaction... :sarcastic:


Message édité par zeb le 01-03-2007 à 00:20:37

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

aok,en tous cas j ai eu une idée et j ai vou voulu vous la montrer car je croyais que ca va vou etre utiile,comme je t ai di ,o debu de fevrier je savai meme pas ce que c le C++,alors ne di pas d alleer lire les regles et tou car je fai de mon mieu,et dsl pr le derangement

zeb
Profil : Modérateur libre
Plus d'informations

  • C'est bien de faire de son mieux.
  • Tu es débutant, je ne critiques pas.
  • Tu ne respectes pas les règles + je suis modérateur = je te dis de lire les règles et c'est comme ça !


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
Ajouter une réponse