Fonction qui génère un code en chaine
Résolu
Utilisateur anonyme
-
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
A voir également:
- Fonction qui génère un code en chaine
- Code ascii - Guide
- Fonction si et - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Chaine tnt gratuite sur mobile - Guide
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 plainement
je crois que la solution de azureus d'aller faire un n'est pas mal non plus aller Bon8 à tous et merci
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 plainement
char 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.
Mais bon, snprintf suffit. Et sinon n'oublie pas de terminer une chaîne par un \0 sinon tu risques d'avoir des surprises.
#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]
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
mon choix étant de resté générique quelque soit le langage n'aillant pas été explicitement donné.
Bien que implicite par la déclaration de la fonction.
c'est la logique de tous.
En effet on simplifie toujours mais on ne complique que rarement et encore.
Cela prouve que l'on recheche toujours compliqué quand t-on pouvais faire simple.
Hum je suis fatiguer moi ... dodo go :)