Bonjour

Je me suis mis à la programmation sous C depuis quelques semaines seulement, et suis bloqué sur un exercice :

Sans utiliser de pointeur, Ecrire la fonction partie_presente qui retourne 1 si une chaîne de caractère est présente dans une autre chaine de caractères et 0 sinon. Les deux chaînes seront passées en paramètre de la fonction.

J'ai beau tourné le problème dans tous les sens, je n'arrive pas, je suis un novice, et c'est ma première de mande sur le forum, espérant ne pas l'avoir déposé dans le mauvais endroit, et espérant une aide de votre part.

D'avance merci.

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
 
#include<stdio.h>
#include<string.h>
/* c'est du langage C */
int partie_presente(char ch1 [], char ch2[])
{
    int i=0, j=0, k=0;
    int h=0, ps=0;
    printf("Entrez une chaîne de caractères: ");
    fgets(ch1,1000,stdin);
    printf("Entrez la séquence recherchée: ");
    fgets(ch2,1000,stdin);
    char tmp[strlen(ch2)];
 
    for(i=0; i<strlen(ch1); i++)
    {
        for(j=i; j<strlen(ch2) ; j++)
        {
            strncpy(tmp, ch1,strlen(ch2));
             h=strcmp(tmp,ch2);          
        }
        if(h==0)
            {
                ps=1;
            }
    }
 
    if(ps==1)
        printf("La séquence est présente\n");
    else
        printf("La séquence n'est pas présente\n");
 
    return ps;
}
 
int main()
{
     char ch1[1000], ch2[1000];
     partie_presente(ch1, ch2);
     return 0;
}