Recuperation d'un morceau d'une chaine [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
29 mai 2008
-
Messages postés
5
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
29 mai 2008
-
Bonjour.

Je voudrais recuperer un morceau de chaine, par exemple j'ai   "toto 3 tata" et je voudrais avoir le 3.
Avec strtok ca pose probleme car il s'arrete au 1er espace.
Je pensais decouper la chaine en 2 en gardant que "toto 3" , puis a nouveau ne gardé que le "3"

Si vous pouviez m'aider.

Merci beaucoup

4 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Le morceau est donc délimité par des espaces. Dans ce cas:

char buf[] = "Bonjour les amis", result[10];char *c buf, *d result;

while(*c++ != ' ');while(*c !' ') *d++ *c++;
*d = 0;

result contiendra "les"

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Je ne comprend pas ce que tu veux faire. Tu veux récupérer une section bien précise de la chaine ou tu veux chercher une occurence.

Si tu cherche une occurence, tu peux utiliser strstr

Si tu veux découper la chaine à un endroit bien précis, tu peux essayer ceci:
void strcut (char *src, char *dest, unsigned int start, unsigned int len)
{
    char *c;
    if(!src || !dest) return;
    c = src+start;
    while(len--) *dest++ = *c++;
    *dest = 0;
}

C++ (@++)<!--
Messages postés
5
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
29 mai 2008

En fait je voudrais recuperer une section bien particuliere , comme le 3 mais qui peut etre un 10 aussi , donc on ne peut pas savoir le nombre de caractere avant

Merci beaucoup
Messages postés
5
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
29 mai 2008

Merci beaucoup!