débogage et problème d'exécution
bonjour
je trouve pas l'erreur que je fait dans mon code,en faite objective de ce programme de trouve toutes les mots dans une chaines qui ont les même longueur et ont aussi même caractères (ordre différents) et les affiches
exemple
\\affichage
bonjour salu asul un paule nu
bonjour
salu asul
un nu
paule
par contre avec ce code j'ai pas trouve de problèmes du compilation mais débogage lors d l'exécution
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int init(char *t,char *p[])
{
int i,k;
p[0]=t;
k=1;
for (i=1;t[i]!='\0';i++)
if(t[i]==' ' && t[i+1]!=' ')
{
i++;
p[k]=t+i;
k++;
}
return k;
}
int nboc(char *ch,char x)
{
int nb=0,i;
for(i=0;ch[i]!='\0';i++)
{
if(ch[i]==x)
nb++;
}
return nb;
}
int isa(char *ch1,char *ch2)
{
int n1,n2,isa=1,i;
n1=strlen(ch1);
n2=strlen(ch2);
if(n1!=n2)
isa=0;
i=0;
while((i<n1)&& (isa==1))
{
if(nboc(ch1,ch1[i])!=nboc(ch2,ch1[i]))
isa=0;
i++;
}
return isa;
}
void programme(char *ch,char *p[])
{
int n,test,i,j,k;
n=init(ch,p);
for(i=0;i<n-1;i++)
{
j=i+1;
k=0;
while(isa(p[i],p[j])==0 && j<n)
{
j++;
k++;
}
if(k==(n-i+1))
{
printf("%s",*p[i]);
printf("\n");
}
}
while(isa(p[i],p[j])==1 && j<n)
{
if(test==0)
{
printf("%s",*p[i]);
test=1;
}
printf("%s",*p[j]);
j++;
}
}
int main()
{
int n;
char ch[]="bonjour salu asul un fred nu";
char *p[1000];
programme(ch,p);
system("pause");
} |