cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005
-
11 juil. 2004 à 20:05
Stepharcher
Messages postés117Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention 8 septembre 2008
-
14 juil. 2004 à 02:48
Bonjour,
j'aimerais simplement savoir si il est possible de formater un entier. je m'explique : j'ai des entiers qui varient dans un certain intervalle, et une classe TChaine qui me permet de caster mes entiers en string. je voudrais en fait que mes entiers soient tous representes par le meme nombre de caracteres. par exemple si j'ai la suite de 1 a 15, j'aimerais pourvoir stocker dans des TChaine les entiers de la facon suivante :
01 02 03 04 ... 13 14 15
de mem, si j'ai plus de 100 entiers je voudrais que cela se fasse comme ca :
001 002 003 ... 099 100 101 102 ...
texte fct(int a, int b)
{
int i, j; // Bcl
int pos=0; // Position dans la chaine final
texte result; // Renverra le résultat
int taille_nbre=(int)log10(b)+1;// Récupère le nombre de chiffre
// Trouve la taille de la chaine
result.taille=(b-a+1)*taille_nbre + (b-a);
// Alloue la mémoire
result.donnee=(char*)malloc(sizeof(char)*(result.taille+1));
// Y'a plus qu'a remplir, parcoure chaque entier
for(i=a; i<=b; i++)
{
// Parcoure la taille du nombre
for(j=taille_nbre-1; j>=0; j--)
{
// Affiche le caractère
result.donnee[pos]=(i%((int)pow(10, j+1))/(int)pow(10, j))+'0';
// Avance dans la chaine
pos++;
}
// Avance dans la chaine si il le faut
if(i!=b)
{
result.donnee[pos]=' ';
pos++;
}
}
result.donnee[pos]='\0'; // Fin de la chaine
return result;
}
int main()
{
int a, b; // l'interval
texte chaine; // chaine
// Récupère les infos
scanf("%d", &a);
scanf("%d", &b);
// Fait le calcul
chaine=fct(a, b);
// Affiche la chaine
printf("\n%s", chaine.donnee);