Se connecter avec
S'enregistrer | Connectez-vous

Probleme en C sur les chaines de caracteres

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Je souhaite verifier que du caractere x au caractere y dans une chaine de caracteres, il y a bien le mot que je veux.

Exemple l'utilisateur saisie "quitter", mon programme verifie que du caractere 0 au caractere 3 il y a "quit" et a ce moment le programme s'arrete...

tu peux faire avec la fonction strncmp

unsigned char *Chaine_a_trouver[] = "Sortie";
unsigned char *Chaine[] = "La Sortie est là";
unsigned char resultat;

resultat = strncmp(Chaine+3,Chaine_a_trouver,strlen(Chaine_a_trouver));

En fonction de la valeur de resultat, tu sais si ta chaine est bien là. je crois que la fonction renvoie 0 quand elle trouve la chaine

http://www.cplusplus.com/ref/cstring/strncmp.html

Il faut inclure la lib string.h, pour la gestion avancée des chaines de caractères

Tu fais un scanf, qui te permet de placer la chaine tapée à une adresse.
Et apres selon ce que tu veux faire, tu fais soit
- une comparaison caractère par caractère dans une boucle, en sortant quand tu reconnais un motif
- ou bien une comparaison de chaine entre la chaine tapée par l'utilisateur, et la chaine à comparer.

c'est pour dire que tu commences la comparaison au début de la chaine décalée de 3 caractères.

strncmp fonctionne avec des adresses de chaines.

En fait Chaine est l'adresse du début de la chaine,
Chaine+3 représente donc l'adresse du 4eme caractère de la chaine, là ou commence le motif "Sortie".

Si ensuite tu veux rechercher la chaine sans savoir ou elle est tu fais un :
for(i=0 ; ((i<strlen(Chaine))||(resultat==0)) ; i++) resultat = strncmp(Chaine+i,Chaine_a_trouver,strlen(Chaine_a_trouver));
Lassé par la pub ? Créez un compte
Tom's guide dans le monde