Fonction qui génère un code en chaine
Résolu
velocity
-
didier -
didier -
salut,
je cherche à faire une fonction qui à partir d'un entier génère un code sur 5 chiiffre en chaine de caratère
char * create_id(int i, char *id) ;
exemple :
char id[5];
create(402,id) ---> "00402"
j'ai essayé tout ce que je sait sans avoir aucune solution, svp aidez moi j'en ai besoin
merci
je cherche à faire une fonction qui à partir d'un entier génère un code sur 5 chiiffre en chaine de caratère
char * create_id(int i, char *id) ;
exemple :
char id[5];
create(402,id) ---> "00402"
j'ai essayé tout ce que je sait sans avoir aucune solution, svp aidez moi j'en ai besoin
merci
Configuration: Windows Vista Firefox 3.0.4
4 réponses
-
Ou tout simplement :
#include <stdio.h> char *create_id(const int i, char *id) { snprintf(id,6,"%05d",i); return id; } int main(void){ char id[6]; create_id(402,id); puts(id); return 0; } -
merci pour les réponse,
j'ai trouvé une réponse plus longue que les votre mais qui après une semaine devant le poste à programmer avec VS et à debiogger me satisfait plainementchar num[10] = {'0','1','2','3','4','5','6','7','8','9'}; for(int i = 0;i<9;i++){ id[0] = num[i]; for(int j = 0;j<9;j++){ id[1] = num[j]; for(int k = 0;k<9;k++){ id[2] = num[k]; for(int h = 0;h<9;h++){ id[3] = num[h]; for(int m = 0; m<9 ;m++){ id[4] = num[m]; goto end; } } } } } end:
je crois que la solution de azureus d'aller faire un n'est pas mal non plus aller Bon8 à tous et merci-
Oui, mais bon pourquoi recoder des fonctions qui font déjà le boulot à notre place. En plus elles sont souvent plus optimisés et plus fiables. De plus, si tu veux refaire quand même la fonction. Tu peux faire beaucoup plus simple.
#include <stdio.h> char *create_id(int nb, char *id) { int i; for(i=4;i>=0;i--){ id[i]=nb%10+'0'; nb/=10; } id[5]='\0'; return id; } int main(void){ char id[6]; create_id(402,id); puts(id); return 0; }
Mais bon, snprintf suffit. Et sinon n'oublie pas de terminer une chaîne par un \0 sinon tu risques d'avoir des surprises.
-
-
saluts a tous j une personne sur forum qui a besoin aide pour son prog
aller voir se lien svp
[url]http://www.commentcamarche.net/forum/affich 10576093 souci de ligne dans mon c[/url] -
decompose ton int en 5 variable int.
unite, dizaine, centaine, millier, dizaine_millier ; exemple : dizaine_millier =ton_int%10000; ton_int=ton_int-dizaine_millier ; millier=ton_int%1000 ; ton_int=ton_int-millier ; etc... ensuite pour chaque variable traduit en char exemple : char Cuniter='0'+unité ; etc... tu met tout dans un tableau dans l'odre et c'est finit