Trouver l'indice d'un caractère dans une chaine de caractères

new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004 - 7 oct. 2004 à 17:29
newneo Messages postés 10 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 5 janvier 2006 - 28 déc. 2004 à 14:50
Bonjour tout le monde!

Je cherche une fonction qui me permet de trouver l'indice d'un caractère dans une chaine de caractère.

J'ai utilisé une boucle qui scrute la chaine mais ce n'est pas très élegant!!!!!

Exemple

"salut 3234olo33;324"
La fonction doit chercher l'indice du premier caractère ';' et me le renvoyer!

En vous remerçiant d'avance passez une bonne soirée!!

haffa

11 réponses

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
7 oct. 2004 à 17:38
strstr() dans string.h
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 oct. 2004 à 18:26
plutot strchr s'il n'y a qu'un caractère a chercher, toujours dans string.h
char* p = strchr("salut 3234olo33;324", ';');
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
7 oct. 2004 à 18:49
Ouais mais strrchr() renvoie l'indice du dernier caractère trouvé, attention si y'en a plusieurs...

Sinon tu fais un while(), au moins t'es sûr que çà fait ce que tu désires.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 oct. 2004 à 18:56
J'ai pas dit strrchr mais strchr, qui renvoie bien la premiere occurence trouvée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
7 oct. 2004 à 19:07
Oups désolé.
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
7 oct. 2004 à 20:13
si t'utilise des strings et pas des char*:
find_first_of ou find_last_of
0
new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004
7 oct. 2004 à 20:25
Salut tout le monde et merci d'avoir répondu! Bref.

J'ai utilisé cette fonction

char* p = strchr(number, ';');

//number est une chaine de caractères que je récupère depuis un fichier...
Maintenant j'ai des problemès de conversion!!
je souhaite tronquer au niveau de la position du pointeur

Exp:

number[p]=['\0];

Mais il faut mettre la valeur numérique de p et pas la pos. du pointeur!

Merci d'avance!

haffa
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 oct. 2004 à 20:31
char *c = buffer;
while(*c) {if(*c ';') {*c 0; break;}
c++;
}

FINI

ciao...
BruNews, MVP VC++
0
newneo Messages postés 10 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 5 janvier 2006
28 déc. 2004 à 04:17
char *c = buffer;
while(*c) {if(*c ';') {*c 0; break;}
c++;
}

FINI

j'obtiens une segmentation fault avec ça

Par contre strchr renvoit la 1ere occurence pas la position de celle ci ou alors c'est que je n'arrive pas à la récupérer

moi je voudrais rechercher D dans ABCDEF renvoit 4

Merci

.: Newneo :.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 déc. 2004 à 14:14
Je trouve que le break est pas joli:

char *c = buffer;
while(*c) {if(*c ';') *c 0;
else c++;
}

sinon, tu peux faire

char buffer[] = "ABCDEF";
char* p = strchr(buffer, 'D');
if(p)
{i p - buffer; // i 4
}
0
newneo Messages postés 10 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 5 janvier 2006
28 déc. 2004 à 14:50
impecc merci bien

.: Newneo :.
0
Rejoignez-nous