[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.
Configuration: Windows XP Internet Explorer 7.0
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. -
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. -
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 -
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 -
Salut,
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; } -
Bon j'ai réussi, merci à vous tous ! j'ai pioché un peu dans les idées de chacun.
bonne journée et encore merci.