[C avancé]
Résolu/Fermé7 réponses
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
67
8 juil. 2008 à 14:04
8 juil. 2008 à 14:04
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.
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
67
8 juil. 2008 à 14:12
8 juil. 2008 à 14:12
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
8 juil. 2008 à 14:42
8 juil. 2008 à 14:42
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; }