salut. dans l'ennuis on peut apprendre des trucs plutot que de glander
bref j'ai decider de faire en C une fonction split(char s[],char ss[])
a utiliser comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
   ptr = split("bonjour les amis"," ");
et ptr est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 *ptr[4];
  ptr[0] = "bonjour"
  ptr[1] = "les"
  ptr[3] = "amis"
  ptr[3] = NULL;
mon probleme? c'est que j'arrive pas a renvoyer le bon pointeur. je presente la fonction:
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
 
type_de_retour split(char s[],char ss[])
{
  int mots = occurence(s,ss);
  if(mots==0)
      return NULL;
 
   mots++;// dans notre cas il y a 2 espaces donc 3 mots
   char *p[mots+1];
   p[mots]=NULL //pour signaler la fin
 
   int i,debut=0;
   for(i=0;i<mots;i++)
   {
       char *str = extract(s,&debut,ss); //debut=extraction a partire de.
       int l = strlen(str)+1;
       p[i] = (char *) malloc(sizeof(char *)*l);
       strcpy(p[i],str);
   }
 
}
bon le probleme c'est comment renvoyer p? et deuxieme question est-il necessaire de faire a la fin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void release(char *p[])
{
     int i=0;
     while(p[i]!=NULL)
          free(p[i]0;
}