Chaine de caractere!!

Résolu
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Salut à tous le monde..Je cherche un algo qui me permet de determiner le nombre et la position d'une sous-chaine dans une chaine.Ex: on dans fonction:en position 1 et 6.
Voici ce que j'ai fait et cepedant le compilateur m'a signalé 5 petites erreurs dont j'arrive pas à me debarrasser:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#define n 100



{ char chaine[100],sousch[100];

int tab[n],i,j,k,lgch,lgsch,lg,cont;


printf("Veuillez saisir la chaine principale\n");
scanf("%s",&chaine);
fflush(stdin);
lgch=strlen(chaine);

printf("Veuillez saisir la sous-chaine\n");
scanf("%s",&sousch);
fflush(stdin);
lgsch=strlen(sousch);

i=0;j=0;k=0;lg=0;cont=0;

while(i<lgch)
{
do
{
if(sousch[j]==chaine[i])
{ cont=1;
i=i+1;
j=j+1;
lg=lg+1;
}
else
cont=0;
}
while((j<lgsch) && (cont==1));

if(lg==lgsch)
{
tab[k]=i-lg;
k++;
i--;
}

i++;
lg=0;
j=0;
}
if(k==0)
{
printf("Y a pas de sous-chaine\n");
}
else
{
printf("La sous-chaine se trouve à la position:\n");
for(i=0;i<k;i++)
printf("%d",tab[i]);

}
getch();
}


SVP je vous en prie aidez-moi.
A voir également:

9 réponses

alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
Je t'aurais bien aidé mais je connais pas c quoi ce language, alors je me suis permis de refaire l'indentation :)

#include<stdio.h>
#include<conio.h>
#include<string.h>
#define n 100
{
char chaine[100],sousch[100];
int tab[n],i,j,k,lgch,lgsch,lg,cont;
printf("Veuillez saisir la chaine principale\n");
scanf("%s",&chaine);
fflush(stdin);
lgch=strlen(chaine);

printf("Veuillez saisir la sous-chaine\n");
scanf("%s",&sousch);
fflush(stdin);
lgsch=strlen(sousch);

i=0;
j=0;
k=0;
lg=0;
cont=0;

while(i<lgch){
do{
if(sousch[j]==chaine[i]){
cont=1;
i=i+1;
j=j+1;
lg=lg+1;
}
else cont=0;
}
while((j<lgsch) && (cont==1));
if(lg==lgsch){
tab[k]=i-lg;
k++;
i--;
}
i++;
lg=0;
j=0;
}
if(k==0){
printf("Y a pas de sous-chaine\n");
}
else{
printf("La sous-chaine se trouve à la position:\n");
for(i=0;i<k;i++)
printf("%d",tab[i]);
}
getch();
}
0
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
C'est en c. Au fait t'as fait quasiment la même chose.ou bien c'est moi qui me suis trmpoé.
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
ben oui, en fait il y a un virage des espaces en debut de ligne quand on poste... C'était plus joli ce que j'avais fait!
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
moi c plutot Java mais on peu regarder, tu peux balancer les messages du compilateur aussi?
0
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
Voici les erreurs signalées par le compilateur(tclite):
erreur c:\tclite\bin\ngtp\chaine.c 8: declaration was expected
erreur c:\tclite\bin\ngtp\chaine.c 13 : ) expected
erreur c:\tclite\bin\ngtp\chaine.c 14 : ) expected
erreur c:\tclite\bin\ngtp\chaine.c 15 : ) expecte
\bin\ngtp\chaine.c 63 : ) fonction should return a value in fonction fflush()
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
Je crois qu'il te manque une accolade ouvrate apres le deuxieme while
while((j<lgsch) && (cont==1));
0
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
Pas du tout!!Ce while dont tu parle est pour la boucle do-while. L'erreur ne se trouve pas ici mais quelque part dans le programme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
ben oui je suis con :)
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
tu es sur de la déclaration de ta macro ?
0
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
Bien sur que j'en suis sur!!!
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
il manque pas un truc du genre: void chaine()
désolé, j'espère qu'un céiste pourra s'occuper de toi au plus vite!
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   436
 
l'erreur c'est parce que dans ton programme tu as oublié de mettre l'entete du main...
int main()
et pour garder les indextions quand vous postez votre code il faut utiliser les balises "code" qui se trouver en haut a gauche du cadre ou vous ecrivez entre le souligné et la petite planete, vous mettez votre code entre les deux balise et puis voila ;)
0
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
Ah bon merci beaucoup Mype, c'est vraiment gentille da ta part!!J'y ai trop reflechy la dessu et quand même je m'en suis pas rendu !!Et graçe à toi j'ai reussi à m'en debarresser....Um kandandu à angolais....
0
alexdelareunion Messages postés 545 Date d'inscription   Statut Membre Dernière intervention   142
 
et ben voila qu'est ce que je disais :) ! Merci mype
0