Recuperation d'un morceau d'une chaine

Résolu
paihpaihtte Messages postés 5 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 29 mai 2008 - 17 mars 2007 à 19:44
paihpaihtte Messages postés 5 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 29 mai 2008 - 17 mars 2007 à 23:23
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

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 mars 2007 à 20:57
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++ (@++)<!--
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
17 mars 2007 à 20:36
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++ (@++)<!--
0
paihpaihtte Messages postés 5 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 29 mai 2008
17 mars 2007 à 20:40
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
0
paihpaihtte Messages postés 5 Date d'inscription lundi 27 septembre 2004 Statut Membre Dernière intervention 29 mai 2008
17 mars 2007 à 23:23
Merci beaucoup!
0
Rejoignez-nous