bonjour!
si quelqu'un pourra m'aider à résoudre ce problème !
il s'agit d'écrire un prog.C qui cherche une chaine de carctère mot1 dans un autre mot2 et returne mot1 si trouvé..
j'ai essayé et ca n'a pas marché
bonjour!
si quelqu'un pourra m'aider à résoudre ce problème !
il s'agit d'écrire un prog.C qui cherche une chaine de carctère mot1 dans un autre mot2 et returne mot1 si trouvé..
j'ai essayé et ca n'a pas marché
As-tu droit à la foction strstr ?
Si oui, c'est fait, sinon, il faut écrire un petit automate de recherche, creuse cette voie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 /*voici mon algorithme:*/ #include<stdio.h> #include<string.h> #include<conio.h> void recherche (char ch1[],char ch2[]) { int i=0;int j=0; if(strlen(ch1)<=strlen(ch2)) { while(( (i<strlen(ch1)) && (j<=strlen(ch2)) || (i<=strlen(ch1)) )) { if(ch1==ch2[j]) { i++; j++; } else { i=0; j++; } } printf("i= %d j= %d\n",i,j); if (i-1==strlen(ch1)) printf("le mot est trouve"); else printf("le mot n'est pas trouve"); } else printf("chaine courte"); } int main() { char mot; char motsource[20]; printf("donner la chaine source:\n"); gets(motsource); printf("donner le mot a rechercher:\n"); gets(mot); recherche(mot,motsource); getch(); }
Utilise les balises code c'est beaucoup plus lisible.
gets est un bug, il faut utiliser fgets(buf, sizeof buf, stdin).
main doit retourner un int.
En regardant un peu plus ton code
Comportement indéfini, le pire, ça marche jusqu'au moment où ça ne marche plus, souvent le jour de la présentation devant le prof !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char mot; // plus loins gets(mot);
Sinon ton code me semble correct, mais je n'ai pas approfondi, la section algo c'est à côté.
Tout de même ce testme paraît sujet à caution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(( (i<strlen(ch1)) && (j<=strlen(ch2)) || (i<=strlen(ch1)) ))
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager