begin process at 2012 05 30 11:28:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

splitting a string


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

splitting a string

vendredi 5 septembre 2008 à 12:42:38 | splitting a string

dud1410

salut tout le monde:j'ai une chaine de caractere de la forme:"name  N1 / Category" et je voudrais la decomposer de facon a avoir chaque mot dans une chaine a part est ce que quelqu'un peut m'aider!!!!
vendredi 5 septembre 2008 à 13:19:55 | Re : splitting a string

fregolo52

Membre Club
C'est simple tu utilises les fonction strcspn et/ou strstr pour rechercher les espaces.
quand tu trouves un espace tu avances le pointeur de lecteur, et tu recherches a nouveau l'espace.

En cherchant bien sur le Net il doit y avoir des exemples.
vendredi 5 septembre 2008 à 13:23:40 | Re : splitting a string

dud1410

merci beaucoup
vendredi 5 septembre 2008 à 16:03:16 | Re : splitting a string

SAKingdom

Membre Club
void token (char *c, char **ptr, char occ)
{
    char *d = c;
    int i = 0;

    while(1) {
        if(*c == occ) {
            *c = 0;
             ptr[i++] = d; d = c+1;
        }
        else if(!*c) {
            ptr[i] = d;
            break;
        }
        c++;
    }
}

char buffer[] = "salut a tous";
char *ptr[3];

token(buffer, ptr, ' ');

ptr[0] contiendra "salut", ptr[1] contiendra "a" et ptr[2] contiendra "tous".

Attention, il ne s'agit que de pointeurs. Ils restent donc dépendants de la chaîne principale (qui ce retrouve donc modifiée). Si tu écrase la chaîne principal, les pointeurs risque de ne plus pointer sur la bonne location.

Si tu veux garder la chaîne principal intacte ou si tu veux la réutiliser pour autre chose, voici une autre routine qui sauvegarde les chaînes dans un tableau à  2 dimensions tout en laissant la principale inchangée:

char buffer[] = "salut a tous", *c = buffer;
char tab[3][12]; // <- 3 mots de chacun 11 char + 0 de fin de chaine
int j = 0;

do {
    int k = 0;
    while(*c != ' ' && *c) tab[j][k++] = *c++;
    tab[j++][k] = 0;
} while(*c++);

tab[0] contiendra "salut", tab[1] contiendra "a" et tab[2] contiendra "tous"

C++ (@++)

jeudi 11 septembre 2008 à 12:11:46 | Re : splitting a string

wogkiller

les classes CString ou String ont des méthodes permettant de faire ça dirrectement en donnant le ou les caractères de séparations.
jeudi 11 septembre 2008 à 12:25:16 | Re : splitting a string

dud1410

oui je suis d'accord avec wogkiller mais quand meme merci beaucoup pour votre aide sakingdom


Cette discussion est classée dans : string, chaine, splitting


Répondre à ce message

Sujets en rapport avec ce message

help :: String => Int [ par Skyman ] Comment on fait pour changer un string en int ou en long ?ex :char *chaine;int entier;long entierlong;chaine = "1234";int = chaine; // (int = 1234) un string comme un entier. [ par DarkSchneider ] Bonjour, J'ai un petit problème de mémoire.Je sais qu'il est possible de se servir d'une chaine de caractere pour effectuer un calcul, mais je me rapp String [ par ToToL ] BonjoursJe cherche un moyen rapide de savoir si deux chaine de caractère sont les meme.J'ai essayer le == et ca me renvoi toujours 0 meme quand les ch Convertion d'une string en char [ par redpooka ] Voici avec ce programme ca n'affiche juste le premier charactère comment faire pour qu'il affiche toute la chaine de caracètre ?Merci#include <iostre Convertion "15"(string) --> 15(int) [ par crocejf2000 ] (Re)SalutIl faut que je test ma chaine et que je la convertisse si je peut. Avec atoi("12"), ca me donne bien 12, mais si je fait un atoi("12hach"), c Chaine de caracteres [ par LordBob ] Salut a tous,voila j'ai une question seulement, je ne sais pas trop comment la poser ou plutot l'expliquer... Alors, je vais faire comme je peux... al string [ par ToToL ] BonjourComme le dit le sujet j'ai un probleme de string ...... ;-)en fait j'ai un char remplit d'une chaine de caractere avec a un endroit de la chain Traiter une chaine en c++ [ par drnicholas001 ] Salut, je veux me faire un petit programme qui fonctionne en ligne de commande, donc lutilisateur écrit en mode console : solve(x-2=0, x) et le progra compilation .o [ par xantro ] bonjour a tous et a toutes. J'aurai besoin d 'un coup de main pour un probleme de compilation. Voila, j'ai mon programme avec plusieurs fichiers (fic Allocation dynamique de char* .... [ par Gendal67 ] Bonjour à tous....Avant d'acheter un flingue pour de bon, je me suis dit qu'il pourrait etre judicieux de demander de l'aide quelque part... voila, je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,374 sec (4)

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