begin process at 2012 05 30 17:59:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Split d'une string


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Split d'une string

vendredi 17 novembre 2006 à 11:49:02 | Split d'une string

sebastienmz

Bonjour j'ai une string qui contien la date dans ce format : Fri Nov 17 11:43:56 2006
et j'aimerais
mettre chaque partie dans une char différente par exemple :
date = 17
jour = Fri
mois = Nov
annee = 2006
heure = 11
minutes = 43
sec = 56
comment faire ?
-----
Sébastien Metthez
www.sebastien-metthez.com
vendredi 17 novembre 2006 à 12:02:58 | Re : Split d'une string

buno

Administrateur CodeS-SourceS
Salut,
Il n'y a pas de fonction toute faite dans la classe string, il te faudra la coder toi-même. A priori, pas de souci majeur car toutes tes données sont séparées par des espaces...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 17 novembre 2006 à 13:30:10 | Re : Split d'une string

sebastienmz

Mais comment faire ?
-----
Sébastien Metthez
www.sebastien-metthez.com
vendredi 17 novembre 2006 à 14:24:06 | Re : Split d'une string

Ombitious_Developper

Réponse acceptée !
Salut:

Voici une solution, quoique les gens ici détestent l'utilisation de "strtok". Comme ça tu as au moins une idée claire de ce qu'il faut faire.

#include <string.h>
#include <iostream>

using namespace std;

char ** tokenize (char * s, const char * delimiter, int n)
{
    char ** res = new char * [n];
    char * sep = strtok (s, delimiter);
   
    int i = 0;
    while (sep)
    {
          res [i++] = strdup (sep);
          sep = strtok (NULL, delimiter);
    }
    return res;
}

int main(int argc, char *argv[])
{
    char str [] = "Fri Nov 17 11:43:56 2006";
   
    char ** tokens1;
    char ** tokens2;
   
    tokens1 = tokenize (str, " ", 5);
    tokens2 = tokenize (tokens1 [3], ":", 3);
   
    cout << "Jour : " << tokens1 [0] << endl;
    cout << "Mois : " << tokens1 [1] << endl;
    cout << "Date : " << tokens1 [2] << endl;
    cout << "Heures : " << tokens2 [0] << endl;
    cout << "Minutes : " << tokens2 [1] << endl;
    cout << "Secondes : " << tokens2 [2] << endl;
    cout << "Annee: " << tokens1 [4] << endl;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

vendredi 17 novembre 2006 à 14:26:57 | Re : Split d'une string

Ombitious_Developper

Salut:

J'ai oublié de libérer l'espace mémoire utilisé vers la fin du programme:

ajoutes ceci après l'affichage:

delete [] tokens1;
delete [] tokens2;
vendredi 17 novembre 2006 à 14:32:30 | Re : Split d'une string

buno

Administrateur CodeS-SourceS
Soit tu parcours ta chaine avec 2 pointeurs, tu bouges le second jusqu'à trouver un espace, tu traites ce qui se trouve entre les 2 pointeurs et tu recommence...
Soit tu utilises la fonction sscanf().

string truc="Fri Nov 17 11:43:56 2006";
char j[4],m[4];
int d,h,mm,s,a;
sscanf(truc.c_str(),"%3s %3s %d %d:%d:%d %d",j,m,&d,&h,&mm,&s,&a);


Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 17 novembre 2006 à 14:33:57 | Re : Split d'une string

sebastienmz


sa me dit : [Warning] assignment makes pointer from integer without a cast


Sébastien Metthez
www.sebastien-metthez.com
vendredi 17 novembre 2006 à 14:41:10 | Re : Split d'une string

sebastienmz

oublier de précicer je suis sous dev cpp et je fait du C donc les news ne marche pas

Sébastien Metthez
www.sebastien-metthez.com
vendredi 17 novembre 2006 à 14:46:59 | Re : Split d'une string

buno

Administrateur CodeS-SourceS
En précisant ton environnement dès le départ, tu aurais eu une réponse plus adéquate...
Les new du C++ sont les malloc du C
Après, à toi d'adapter...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 17 novembre 2006 à 17:46:52 | Re : Split d'une string

Ombitious_Developper

Salut:

Je veux critiquer ma solution si tu utilises plusieurs threads qui fait chacun appel à la fonction "strtok" ça risque de donner des résultats erronés.

Mais dans ton cas comme tu utilises "strtok" dans une simple programme monothread
cette fonction est l'idéale solution pour toi.

Sinon tu peux créer ta propre fonction/classe pour faire le même travail.


Cette discussion est classée dans : date, string, split


Répondre à ce message

Sujets en rapport avec ce message

[FUNCTION] : Problème de déclaration [ par Alex120 ] Bonjour, J'ai écrit une fonction split() dans un fichier cpp : #include #include "vector.h" /** * FUNCTION SPLIT() */ vo Urgent : Probleme avec split d'un string [ par QuakeCoder ] salut. j'ai un char * qui contient "C:\\Documents and Settings\\quick\\Bureau\\Nouveau dossier\\test me.exe" comment faire pour extraire juste ca => " Recupérer des string par lecture. [ par CicinhoRaul ] Bonjour à tous, désolé de vous déranger mais j'ai un problème en C++ à resoudre à propos de la lecture d'un fichier; (je reconnais, le C++ n'est pas t Conversion string en date [ par jpeg ] j'aimerai convertir (en C++ standard, sans MFC) une chaine de caractère de n'importe quel format (DD/MM/YYYY ou DD/MM/YYYY hh:mm ou YYYYMMDD ou ....) Conversion des types string en int [ par tanguy_laverdure ] Bonjour, j'essai en vain de convertir un type string en int. Y a t il des méthodes directes de string.h qui permettent de faire cela ou faut il me fai Parser un string simple en C++ ? [ par Nicocyno ] Bonjour a tous,je pense que mon problème est simple et pourtant je n'ai pas encore trouvé de réponse autour de moi :(String monString ="[objet1]elemen date et heures en bd [ par systemic_anomaly ] J'ai un prob avec une commande sql depuis deka un certain temps. Il s'agit de la soustraction de 2 heures declarees comme suit : HDepPrev DATE probleme en langage C - URGENT!!!!! [ par mazo0012 ] bonjourjai un gros pb en C, si quelq'un pouvait m'aider apidement je commence a devenir dingue!!!!!!jexplike:tout simplement, j'essaye de saisir le ch probleme urgent avec borland c++ [ par morgandetoi06 ] ça veut pas me compiler ça:#include typedef struct{string telephone;string nom;string prenom;string surnom;}fi;ça me dit :Nom de ype attendu; manquant Ouvrir et lire un fichier texte en C++.net [ par Eels ] Voila j'aimerais ouvrir un fichier texte qui se presente sous cette forme:NumPort Nom du trojanNumPort2 Nom du trojan 2En fait, je fais un scanner de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,018 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales