Tom's Guide > Forum > Programmation > Probleme en C sur les chaines de caracteres
Mot :    Pseudo :           
 

Bonjour,
Je souhaiterai savoir si l'on peut en C désigner dans une chaine de caracteres certains caracteres...
En gros:
je veux designer "sortie" dans:
char[20]="la sortie est la"
moi je mettrai bien => sortie[3,8]
mais ça marche pas...
Est ce que c'est possible avec une autre notation?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

tu veux faire quoi exactement ?
qu'est-ce que tu entends par "désigner" ?

Répondre à Anonyme

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...

Répondre à T_pabo

Je sais pas si c'est ça que tu veux faire, mais si tu fais:

char buf [20]="la sortie est la";
char sortie [8];
sscanf(buf,"la %s est la",sortie);

Tu récupères dans sortie la chaîne "sortie".

Répondre à tipsy33

Merci ce n'est pas la reponse à ma question mais tu m'as permis de resoudre un autre de mes problemes...

C'est si peu clair que ça ma question?

Répondre à T_pabo

Effectivement ca ne marcheras pas LOL

Avec Scanf tu devrais pourvoir le faire

Répondre à Shinji62

Avec scanf.... Je comprend pas comment...?
Tu peux détailler un peu plus stp...? :-o

Répondre à T_pabo

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

Répondre à Anonyme

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.

Répondre à tipsy33

MMmh ça me parait etre une bonne solution...
Mais c'est quoi exactement: Chaine+3
dans :
strncmp(Chaine+3,Chaine_a_trouver,strlen(Chaine_a_trouver));


Répondre à T_pabo

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));

Répondre à Anonyme

Ok nickel... C'est ce qu'il me fallait je pense...
Merci et à bientot

Répondre à T_pabo
Tom's Guide > Forum > Programmation > Probleme en C sur les chaines de caracteres
Aller à :

Il y a 510 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens