Chercher la position d'un caractere

Signaler
Messages postés
19
Date d'inscription
mardi 5 juin 2001
Statut
Membre
Dernière intervention
22 août 2002
-
Messages postés
19
Date d'inscription
mardi 5 juin 2001
Statut
Membre
Dernière intervention
22 août 2002
-
Bon, je cherche à obtenir la position d'une chaine de caractere dans une autre chaine de caractere.
Mais les seuls fonctions que j'ai trouvé me renvoyent l'adresse d'un pointeur, alors que moi, il me faut la position avec un entier. Ou alors, est-ce qu'on peut soustraire l'adresse renvoyé à celle de la chaine de depart pour obtenir sa position dans la chaine.
Merci Bcp

4 réponses

Messages postés
40
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
25 février 2004

je peux te proposer qque chose. c'est pas très élégant mais c'est la première chose qui m'est venue à l'esprit.

char* pointeurChaineInit; // ta chaine de départ.
char* pointeurChaineTrouv; // le pointeur renvoyé par la recherche

int tailleChaineInit=strlen(pointeurChaineInit);
int tailleChaineTrouv=strlen(pointeurChaineTrouv);

int pos=tailleChaineInit-tailleChaineTrouv;

cpd, il faut peut-être creuser l'idée de faire les calculs sur les adresses renvoyées... Je sais que l'on peut faire :

char* p1;
int valDeplacement;
char* p2=p1+valDeplacement;

mais je crois pas que l'on puisse faire.
valDeplacement=p2-p1;

enfin... y'a qu'à essayer ...
Messages postés
19
Date d'inscription
mardi 5 juin 2001
Statut
Membre
Dernière intervention
22 août 2002

Merci pour ton aide, je n'ai pas encore essayé, mais je pense que ca bcp m'aider, C'est cool de ta part.
@+
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Utilise plutôt ca car j'ai un doute sur le code que
l'on t'as donné.

char str1[]="ABCDEF";
char str2[]="CD";

char *p=strstr(str1, str2);

int pos=(p ? str1-p : -1);
Messages postés
19
Date d'inscription
mardi 5 juin 2001
Statut
Membre
Dernière intervention
22 août 2002

Merci pour ton aide aussi, je vais essayer tout ça, j'ai encore rien essayé, alors des que j'ai testé, je vous dis tout ça