Problème chaîne sans pointeur
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:
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;
} |