Accueil > Forum > > > > Diviser une chaine de caractères en 3 chaines de caractères
Diviser une chaine de caractères en 3 chaines de caractères
jeudi 7 octobre 2004 à 17:11:42 |
Diviser une chaine de caractères en 3 chaines de caractères

rico77200
|
A la base je dipose d'un fichier .txt dont le contenu est : apprenti1;ti1;te1 apprenti2;ti2;te2 apprenti3;ti3;te5 apprenti4;ti4;te4 apprenti5;ti5;te5 Je souhaite récuperer ses chaines de caractères dans un tableau à 3 dimensions, mais sans les ';' Respect à celui qui arrivera à faire ca!!!!! car avec fscanf ca ne marche pas!! Ensuite je souhaite comparer la dernière colonne du tableau (qui contient les te1 te2 te3) pour regrouper les même! Je sais que ca ne doit pas etre grand chose, mais c'est très urgent!!!! (un projet d'info...) Merci à tous!!
|
|
jeudi 7 octobre 2004 à 17:42:57 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

Nebula
|
tu peux lire une ligne puis utiliser strtok dessus pour initialiser ton tableau manuellement, pour le regroupement je sais pas... faire trois petits tableaux et les merger en un seul ensuite ?
|
|
jeudi 7 octobre 2004 à 18:14:31 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

rico77200
|
ca peut etre pas mal! je t'explique : j'ai récupéré tout le fichier dans un tab à 2 dimensions en gardant les ";" j'ai essayé avc strtok, mais il s'arrète après le 1er ";" :-( tu saurais comment passer au caractère suivant et à la ligne suivante?
Merci d'avoir répondu et de m'aider ;-)
|
|
jeudi 7 octobre 2004 à 18:45:02 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

Nebula
|
C'est normal, il faut l'utiliser dans une boucle et passer à la ligne suivante s'il retourne NULL (= pas de ; trouvés). Evidemment faut penser à récupérer la fin de la chaîne avant de passer à la ligne suivante ;-)
|
|
jeudi 7 octobre 2004 à 18:53:20 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

rico77200
|
c'est le retour chariot qu'il ne me pren pas!! tu pourrais (si tu as le tps bien sur!!) de me mettre qqes lignes de codes pr récuples chaines ds 3 tableaux différents? - un tab pour le nom des apprentis - un tab pour le nom des TI - un tab pour le nom des TE
ce serait vraiment cool de ta part!! car je n'arrive pas à envoyer le contenu du pointeur dans les tableaux!!
je t'envoi mon bout de code que j'ai commencé, si tu peu le completer pr qu'il gère les 3 tableaux : tab1[] tab2[] et tab3[]
for(i=0;i<14;i++){ p=strtok(tmp[i],";"); tab1[i] = p; while(p){ p=strtok(NULL,";"); } }
|
|
jeudi 7 octobre 2004 à 18:53:51 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

rico77200
|
c'est le retour chariot qu'il ne me pren pas!! tu pourrais (si tu as le tps bien sur!!) de me mettre qqes lignes de codes pr récuples chaines ds 3 tableaux différents? - un tab pour le nom des apprentis - un tab pour le nom des TI - un tab pour le nom des TE
ce serait vraiment cool de ta part!! car je n'arrive pas à envoyer le contenu du pointeur dans les tableaux!!
je t'envoi mon bout de code que j'ai commencé, si tu peu le completer pr qu'il gère les 3 tableaux : tab1[] tab2[] et tab3[]
for(i=0;i<14;i++){ p=strtok(tmp[i],";"); tab1[i] = p; while(p){ p=strtok(NULL,";"); } }
|
|
jeudi 7 octobre 2004 à 20:06:49 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

Nebula
|
Un exemple rapide qui fonctionne, mais à toi de gérer la lecture du fichier (en mode texte) et la répartition dans les tableaux : #include <stdlib.h> #include <stdio.h> #include <string.h>
#define STR "apprenti1;ti1;te1\napprenti2;ti2;te2\napprenti3;ti3;te5\napprenti4;ti4;te4\napprenti5;ti5;te5"
int main(void) { char* str = malloc(sizeof(STR) * sizeof(char)); strcpy(str, STR); char* c = strtok(str, ";"); while (c) { printf("%s ", c);/* gérer la répartition dans les tableaux ici */ c = strtok(NULL, ";"); } free(str); return EXIT_SUCCESS; } |
|
|
jeudi 7 octobre 2004 à 20:18:49 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

leprov
|
ifstream is ("tonfic);
for ( ; ; ) { string Str; getline (is, Str, ';'); //traitement pr mettre ds ton tableau getline (is, Str, ';'); //traitement pr mettre ds la deuxieme colonne getline (is, str); //metttre ds troisieme collone if (is.eof()) break; }
voila une solution pour la lecture si t'es en c++ et pas en c. inclure string, fstream, et using namespace std
|
|
jeudi 7 octobre 2004 à 20:43:51 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

rico77200
|
je n'arrive pas à mettre le contenu de l'adresse du pointeur dans un tab!! je récupère la valeur NULL!!!! si qqn peut m'aider? #include<stdio.h> #include<string.h>
#define FICHIER_ENTREE "entree.txt" //remplacer si besoin entre guillemet par le fichier d'entree #define FICHIER_SORTIE "resultat.txt" //remplacer si besoin entre guillemet par le fichier de resultat #define NB 3
main() { FILE *entree, *sortie; char line[256]; char tmp[200][256]; int count=0; int i=0; int jour[3] = {1,2,3}; int heure[9] = {9,10,11,12,13,14,15,16,17}; int salle[4] = {1,2,3,4}; int nb_salles=4; char *p; char tab1[20]; char *tab2[20]; char *tab3[20]; int r,l;
entree = fopen(FICHIER_ENTREE, "r");
if((entree=fopen(FICHIER_ENTREE, "r")) ==NULL){ printf("impossible d'ouvrir le fichier %s\n", FICHIER_ENTREE); }
while(fgets(line,1023,entree) != NULL){ sscanf(line,"%s;%s;%s",&tmp[count][0]); //printf("%s\n", tmp[count]); count++; }
for(r=0;r<5;r++){ p=strtok(tmp[r],";"); tab1[r] = (char*)p; //printf("%s\n", p); while(p){ p=strtok(NULL,";"); //printf("%s\n", p); tab2[r] = (char*)p; tab3[r] = (char*)p; } }
for(l=0;l<5;l++){ printf("%s\n", tab2[l]); }
sortie = fopen(FICHIER_SORTIE, "w+");
if((sortie=fopen(FICHIER_SORTIE, "w+")) ==NULL){ printf("impossible d'ouvrir le fichier %s\n", FICHIER_SORTIE); } if((heure[i] < 18) && (salle[i] < nb_salles)){ for(i=0;i<count;i++){ fprintf(sortie,"%d;%d;%d;%s\n", jour[0], heure[i], salle[0], tmp[i]); } }
}
|
merci à tous!!!!!!
|
|
jeudi 7 octobre 2004 à 20:45:57 |
Re : Diviser une chaine de caractères en 3 chaines de caractères

leprov
|
entree = fopen(FICHIER_ENTREE, "r");
if((entree=fopen(FICHIER_ENTREE, "r")) ==NULL)
????????????????????????????????????
t'aurais pas voulu mettre
if((entree=fopen(FICHIER_ENTREE, "r")) ==NULL)
tout simplement?
|
|
Cette discussion est classée dans : chaine, chaines, caractères, diviser, te1
Répondre à ce message
Sujets en rapport avec ce message
Chaines de caractères C++ [ par Scalpweb ]
Bonjour à tous. Je suis un programmeur VB qui essaye d'apprendre le C++. En VB, je connais de nombreuses instrcutions pour gérer les chaines de caract
les chaines de caractères dans C [ par hzocm ]
Bonjour, Je voudrais copier un fragment de la chaine A, comment faire?? ex: A = hello, je suis une chaine je veux copier de la position 3 à 5 --> j'a
remplir un tableau avec des chaines de caractères (C) [ par djibfr ]
Bonjour à tous! Alors voila, j'ai un petit problème tout bête mais je n'arrive pas à la résoudre et mes recheches ne m'ont pas trop éclairé. Je souhai
Chaines de caractères [ par Roro8883 ]
Salut,je suis complètement perdu et embrouillé dans les chaînes de caractères en C++ !!!!Comment est-ce que je peux faire pour savoir, dans une chaine
analyse syntaxique [ par fadiam ]
Bonjour à tous. je cherche à réaliser une fonction qui modifie une chaine de caractères.elle n'accepte que les "chiffres" de 0 à 9 et quelques autres
Chaine de caractères et liste de mots [ par joshua509 ]
J'ai un gros problème d'algorithme. Comment faire pour placer,tous les mots séparer d'un espace d'une chaine de caractère,dans une liste chainée de mo
Test sur chaine de caractères [ par valoch33 ]
Bonjour à tous, J'ai un petit problème pour faire mon programme. En effet, je veux faire saisir des données par un utilisateur, comme son nom et son p
comment traiter une chaine de caractères séparée par espaces (String) [ par baptchr55 ]
Bonjour à tous, j'ai un nouveau problème. Je récupère une chaine de caractères dans un "[i]string[/i]", et je souhaiterais extraire ceux-ci mot par m
suppression caractère [ par fadiam ]
bonsoir. une fonction lisant une chaine de caractères n'accepte que les caractères entre '0' et '9' (chiffres) et les ',' '-' '.' et ' '. Si il y a d
découpage de chaine de caractères [ par eldred ]
Bonjour!! voila dans l'optique du dévelopement d'une appli client serveur, je programme un fonction qui doit comparer deux chaines puis séparer celle
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|