[C avancé]
Résolu
Jeff hardi
-
Jeff hardi -
Jeff hardi -
Bonjour à tous,
j'aimerais effectuer un traitement sur une chaîne de caractères en C mais je pense que ca risque d'être compliqué (enfin pour moi quoi)
j'ai une chaine de caractère qui contient une date de cette forme :
08-JAN-99
j'aimerais la transformer pour avoir ceci :
99-01-08
En php/javascript j'aurais utilisé les expressions régulières, j'ai vu qu'en C c'était possible mais qu'il fallait rajouter une bibliothèque.
Auriez-vous une idée du comment faire ?
Merci à vous.
j'aimerais effectuer un traitement sur une chaîne de caractères en C mais je pense que ca risque d'être compliqué (enfin pour moi quoi)
j'ai une chaine de caractère qui contient une date de cette forme :
08-JAN-99
j'aimerais la transformer pour avoir ceci :
99-01-08
En php/javascript j'aurais utilisé les expressions régulières, j'ai vu qu'en C c'était possible mais qu'il fallait rajouter une bibliothèque.
Auriez-vous une idée du comment faire ?
Merci à vous.
A voir également:
- [C avancé]
- Démarrage avancé windows 10 - Guide
- Regarder koh lanta en avance - Forum TV & Vidéo
- Supprimer filtre avancé excel - Forum Excel
- Trottinette qui s'allume mais n'avance pas - Forum Loisirs / Divertissements
- Réinitialiser une trottinette électrique qui n'avance plus - Forum Loisirs / Divertissements
7 réponses
Bonjour,
J'ai trouvé un tuto pas mal ici, ça t'explique quelle bibliothèque rajouter pour pouvoir utiliser les expressions régulières en C ainsi que comment utiliser cette bibliothèque.
En espérant que ça t'aide.
J'ai trouvé un tuto pas mal ici, ça t'explique quelle bibliothèque rajouter pour pouvoir utiliser les expressions régulières en C ainsi que comment utiliser cette bibliothèque.
En espérant que ça t'aide.
ouais merci, j'avais déjà jeté un coup d'oeil mais j'espérais qu'il y aurait une solution sans rajouter une lib, mais je vois pas trop comment faire à part en faisant des extractions des test et des recopies mais ca me parait bien lourd.
Re,
En effet, la gestion des chaine de caractères en C c'est une vrai galère, je te l'acorde ^^
Sinon si tu veux une piste :
Ta chaine de caractère peut être considérée comme un tableau, tu peux jouer là dessus.
- les deux première case tu as ton jour, tu le stocke
- les caractères 4 à 6, c'est ton mois, tu le stocke aussi et tu fais une fonction pour transformer ton mois de trois lettre en "chiffre" ( JAN -> 01 )
- les caractère 8 et 9, c'est ton année tu la stocke
- après tu concatène tout ça dans une dernière variable pour avoir ta date au format souhaité
Voila mais après c'est peut être un peu lourd en effet.
En effet, la gestion des chaine de caractères en C c'est une vrai galère, je te l'acorde ^^
Sinon si tu veux une piste :
Ta chaine de caractère peut être considérée comme un tableau, tu peux jouer là dessus.
- les deux première case tu as ton jour, tu le stocke
- les caractères 4 à 6, c'est ton mois, tu le stocke aussi et tu fais une fonction pour transformer ton mois de trois lettre en "chiffre" ( JAN -> 01 )
- les caractère 8 et 9, c'est ton année tu la stocke
- après tu concatène tout ça dans une dernière variable pour avoir ta date au format souhaité
Voila mais après c'est peut être un peu lourd en effet.
Ouais, c'était dans mon idée.
Merci beaucoup pour ton aide, je vais regarder ça puis je verrai ce qui est le plus avantageux dans mon cas
Merci beaucoup pour ton aide, je vais regarder ça puis je verrai ce qui est le plus avantageux dans mon cas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et si tu te servais de l'enumeration et pour deplacer les characteres des simples operateurs binaires.
facilement trouvable sur developpez
enum mois{jan,fev,mar,...};
date2=(date1&0xFFFF)<<10^....
ca parai compliker mais ca reste simple et ca n est pas tres lourd
bon courage a toi
facilement trouvable sur developpez
enum mois{jan,fev,mar,...};
date2=(date1&0xFFFF)<<10^....
ca parai compliker mais ca reste simple et ca n est pas tres lourd
bon courage a toi
Salut,
Voici un bout de code qui devrait marcher.
A toi de l'adapter.
Voici un bout de code qui devrait marcher.
A toi de l'adapter.
#include <stdio.h> #include <string.h> int corresMois(char *mois){ if (strcmp(mois,"JAN")) return 1; if (strcmp(mois,"MAR")) return 2; if (strcmp(mois,"AVR")) return 3; //A toi de faire le reste ;) } int main(void){ char dateFR[]="08-JAN-99"; char dateEN[9]; int jour,mois; char chMois[5]; sscanf(dateFR,"%d-%s",&jour,chMois); mois=corresMois(chMois); sprintf(dateEN,"%c%c-%02d-%02d",dateFR[strlen(dateFR)-2],dateFR[strlen(dateFR)-1],mois,jour) ; printf("%s\n",dateEN); return 0; }