> Tous les forumsAutres langages

 calculer la longueur d'un entier
Statut du sujet : NON RESOLU Imprimer
 juliendeparis
  Posté le 06/06/2006 @ 21:08  
 Petit astucien

6 Messages
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
 Afficher le profil de juliendeparisEnvoyer un message privé à juliendeparis
 
 
Publicité
 juliendeparis  Posté le 06/06/2006 à 22:01  
Petit astucien

6 Messages
en faite je me suis debrouillé 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(); }
Afficher le profil de juliendeparisEnvoyer un message privé à juliendeparis
 Revenir en haut de la page
 breizhbugs  Posté le 06/06/2006 à 22:13  
Astucien

3001 Messages
Salut, Tu as une drole de notion de longueur d'un entier... Enfin bon, selon ton raisonnement, tu converti un entier en chaine de caractere et tu en mesures la longueur: [code] int entier = 20; char buff[12]; sprintf(buff, "%u", entier); printf("longueur de '%u' est de '%u'", entier, strlen(buff)); [/code] Attention: %u est utilise pour designe un entier positif (0 <= entier <= ~4milliard) %d est utilise pour designe un entier (~-2milliard <= entier <= ~2milliard) la taille max de buff-> int va jusqu'au milliard soit 10 chiffre plus le '\\\\\0' terminal d'une chaine AZT (plus un eventuel -(moins) pour nombre negatif). EDIT: la vache j'ai mis au moins 12 minutes pour ecrire mon post! Attention, ton code est incorrect! essaie calcul de '-20' par exemple!

Modifié par breizhbugs le 06/06/2006 22:20
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 juliendeparis  Posté le 06/06/2006 à 22:46  
Petit astucien

6 Messages
oui tt a fait je suis d'accord avec toi avant de calcuker un entier negatif il faudrai le rendre positif en multipliant par -1 par exemple mais la fonction était destinée a un simple affichage d'entier faisant partie d'une structure enregistré dans un fichier dans un fichier. Etant un numero d'identification il ne pouvait pas etre negatif au prealable :) voila
Afficher le profil de juliendeparisEnvoyer un message privé à juliendeparis
 Revenir en haut de la page
 juliendeparis  Posté le 06/06/2006 à 22:53  
Petit astucien

6 Messages
en plus clair le code est le suivant et il sert a la presentation du text: int calcultaille(int nombre){ int i,j=0; i=nombre; do{ nombre=nombre/10; j=j+1; }while(nombre>0); return(j); } void ecart(int lg){ int i=0; lg=39-(lg+1); for(i=i;i<lg;i++) { printf(" "); } } main(){ .... printf("+-------------------------------------------------+"); printf("\n| AFFICHAGE |"); printf("\n+-------------------------------------------------+"); longueur=calcultaille(eleve.num); printf("\n| NUMERO : %d",eleve.num);ecart(longueur); printf("|\n"); ... }
Afficher le profil de juliendeparisEnvoyer un message privé à juliendeparis
 Revenir en haut de la page
 breizhbugs  Posté le 07/06/2006 à 13:15  
Astucien

3001 Messages
Salut, S'il s'agit de faire un affichage regulier en colonne, tu peut utiliser les options d'affichage de printf et compagnie: [code] for (int i = 0; i < 1500; i+=50) { printf("-%4d\t%4d\t%d suite\n", i, i, i); } [/code] cela produit le resultat suivant: [code] - 0 0 0 suite - 50 50 50 suite - 100 100 100 suite - 150 150 150 suite - 200 200 200 suite - 250 250 250 suite - 300 300 300 suite - 350 350 350 suite - 400 400 400 suite - 450 450 450 suite - 500 500 500 suite - 550 550 550 suite - 600 600 600 suite - 650 650 650 suite - 700 700 700 suite - 750 750 750 suite - 800 800 800 suite - 850 850 850 suite - 900 900 900 suite - 950 950 950 suite -1000 1000 1000 suite -1050 1050 1050 suite -1100 1100 1100 suite -1150 1150 1150 suite -1200 1200 1200 suite -1250 1250 1250 suite -1300 1300 1300 suite -1350 1350 1350 suite -1400 1400 1400 suite -1450 1450 1450 suite [/code] le %4d sigifie que tu veut que l'entier (le 'd') soit afficher sur 4 chiffres au minimum. le \t marque une tabulation ( http://msdn.microsoft.com/library/en-us/vclib/html/_crt_format_specification_fields_.2d_.printf_and_wprintf_functions.asp )
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 juliendeparis  Posté le 08/06/2006 à 14:01  
Petit astucien

6 Messages
pas mal je ne connais pas merci de cette info.
Afficher le profil de juliendeparisEnvoyer un message privé à juliendeparis
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page