Fonction en c
Résolu/Fermé
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
-
10 mars 2008 à 09:35
nilly Messages postés 154 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 25 octobre 2012 - 11 mars 2008 à 13:23
nilly Messages postés 154 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 25 octobre 2012 - 11 mars 2008 à 13:23
A voir également:
- Fonction en c
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Snapchat ils m'ont ajouté par la fonction recherche - Forum Snapchat
- Fonction filtre excel n'existe pas - Forum Excel
9 réponses
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
5
10 mars 2008 à 13:48
10 mars 2008 à 13:48
alooooo
quelqu'un peut m aider SVP
quelqu'un peut m aider SVP
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
10 mars 2008 à 14:12
10 mars 2008 à 14:12
tu as la fonction strstr( char *chaine1 , char *chaine2 ) qui cherche si chaine2 est présente dans chaine1
cela devrait t'aller ?
cela devrait t'aller ?
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
5
10 mars 2008 à 14:41
10 mars 2008 à 14:41
justement mais le prof nous a demander de ne pas utiliser les fonctions de sritng.h
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
10 mars 2008 à 15:20
10 mars 2008 à 15:20
et bien tu réécris la fonction strchr() ! (c'est pas bien dur !)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
5
10 mars 2008 à 20:08
10 mars 2008 à 20:08
ok merci
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
5
10 mars 2008 à 22:14
10 mars 2008 à 22:14
le code source de cette fonction est trops compliqué
et j arrive pas a faire quelque chose de simple
et j arrive pas a faire quelque chose de simple
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
10 mars 2008 à 23:21
10 mars 2008 à 23:21
écoute c'est pas trop compliqué. Si tu n'y arrive pas, c'est peut être ambitieux de vouloir aller plus loin, désolé.
mamiemando
Messages postés
33390
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2024
7 803
11 mars 2008 à 01:00
11 mars 2008 à 01:00
Avant de coder en C essaye de trouver le raisonnement en pseudo code. Concrètement tu as une chaîne (str) et tu cherches si une sous chaîne (motif) est contenue dedans. Concrètement une chaîne est juste un tableau de char terminée par le caractère spécial '\0'.
Dans ton cas il faut parcourir str jusqu'à trouver la première lettre de motif.
- Si tu la trouves il faut voir si la lettre suivante correspond bien à la 2nde lettre de motif.
- Sinon il faut repartir du début de motif et continuer à avancer dans str, dans l'espoir de trouver motif plus loin.
Il suffit ensuite d'appliquer ce raisonnement jusqu'à soit avoir atteint la fin de motif (auquel cas tu as bien prouvé que motif était contenu dans str) ou de str (auquel cas motif n'était pas présent dans le mot).
Le piège dans cette exercice c'est qu'à chaque fois que tu avances dans l'une des deux chaînes que tu ne dépasses pas le caractère de fin de chaîne.
Maintenant réfléchissons au type de ta fonction. Dans ton cas on retourne un booléen (si tu es en C et non en C++ met un int) et deux chaînes. Comme ces deux chaînes sont maintenues constantes par notre fonction on peut utiliser le type const char * au lieux de char *, ce qui est plus propre et plus générique.
A présent essaye de nous proposer le pseudo code correspondant à ta fonction, et une fois cette étape terminée on passera à l'implémentation.
Bonne chance
Dans ton cas il faut parcourir str jusqu'à trouver la première lettre de motif.
- Si tu la trouves il faut voir si la lettre suivante correspond bien à la 2nde lettre de motif.
- Sinon il faut repartir du début de motif et continuer à avancer dans str, dans l'espoir de trouver motif plus loin.
Il suffit ensuite d'appliquer ce raisonnement jusqu'à soit avoir atteint la fin de motif (auquel cas tu as bien prouvé que motif était contenu dans str) ou de str (auquel cas motif n'était pas présent dans le mot).
Le piège dans cette exercice c'est qu'à chaque fois que tu avances dans l'une des deux chaînes que tu ne dépasses pas le caractère de fin de chaîne.
Maintenant réfléchissons au type de ta fonction. Dans ton cas on retourne un booléen (si tu es en C et non en C++ met un int) et deux chaînes. Comme ces deux chaînes sont maintenues constantes par notre fonction on peut utiliser le type const char * au lieux de char *, ce qui est plus propre et plus générique.
bool est_sous_mot(const char *str,const char *motif);
A présent essaye de nous proposer le pseudo code correspondant à ta fonction, et une fois cette étape terminée on passera à l'implémentation.
Bonne chance
nilly
Messages postés
154
Date d'inscription
samedi 26 janvier 2008
Statut
Membre
Dernière intervention
25 octobre 2012
5
11 mars 2008 à 13:23
11 mars 2008 à 13:23
merci beaucoup de votre aide je vais essayé,