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 : 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
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");
}