katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011
-
30 juil. 2009 à 15:56
katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011
-
31 juil. 2009 à 09:20
Bonjour,
J'aimerai avoir votre avis sur le problème suivant :
Ma chaine se formatte de la façon suivante: "RD-AAA=?<CR>"
- AAA étant 3 lettres variables
- ? étant une valeur dont je ne connais pas le nombre de caractères
Mon but est simplement de récupérer la valeur ? afin de la comparer avec une variable par la suite.
Je pensais:
- Trouver la position de "=" (1)
- Trouver la position de "<CR>" (2)
- Copier dans une variable (boucle for) les caractères de la position 1 à la position 2.
En cherchant sur internet, je suis tombé sur des fonctions strstr et strchr mais celles-ci me retournent les occurences.
Je sais qu'il existe une fonction qui retourne la position d'un caractère mais je ne la trouve pas...
Si vous la connaissez, merci de m'aider!
MERCI!!!
A voir également:
Trouver la position d'un caractère dans une chaine python
Position d'un caractère dans une chaine python - Meilleures réponses
Rechercher un caractère dans une chaine python - Meilleures réponses
BunoCS
Messages postés15427Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 6 décembre 2023102 30 juil. 2009 à 18:10
Sorry.
Avec des commentaires:
p1=strchr(truc,'='); // récupération de la 1ère occurrence du caractère '='
p2=strchr(truc,'<'); // récupération de la 1ère occurence du caractère '<'
/* ici, j'ai 2 pointeurs délimitant la sous-chaine à extraire*/
strcpy(result,p1+1); // copie de la sous-chaine (+1 pour ne pas prendre en compte le '='
result[p2-p1-1]='\0'; // troncature de la sous-chaine grâce au 2e pointeur (-1 pour ne pas prendre en compte '<')
/* ici, dans result, j'ai la sous-chaine extraite */
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
BunoCS
Messages postés15427Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 6 décembre 2023102 30 juil. 2009 à 16:46
Hello,
Tu as fait, je me permets de le souligner, un travail de recherche pertinent, étant donné que tu as trouvé toutes les billes.
strchr() te retourne la 1ère occurrence d'un caractère. Si tu sais que tu as un seul caractère "=", tu peux l'utiliser pour avoir sa position dans la chaine. Idem pour le <CR> avec strstr() (ou bien strchr() sur "<").
Avec ça, tu as les 2 positions voulues. Avec un strncpy() tu devrais pourvoir extraire ta sous-chaine.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011 30 juil. 2009 à 17:01
Bruno,
Je suis d'accord mais strchr(buffer,'=') me retourne alors "=?<CR>".
En quoi cela m'aide pour trouver la POSITION de "=" dans mon buffer ?
Je voudrais obtenir la position (une valeur) dans la chaine, non pas la chaine de caractère depuis l'occurence.
BunoCS
Messages postés15427Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 6 décembre 2023102 30 juil. 2009 à 17:15
strchr() te retourne le pointeur sur la 1ère occurence. Donc, ici, un pointeur sur "="
si tu fais la même chose avec "<", tu obtiens 2 pointeurs qui encadrent ta sous-chaine
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Vous n’avez pas trouvé la réponse que vous recherchez ?