Bonjour,

J'utilise la fonction str_split du tuto (chaines de caractères en c):
dont voici le code:

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
char **str_split (char *s, const char *ct)
{
   char **tab = NULL;
 
   if (s != NULL && ct != NULL)
   {
      int i;
      char *cs = NULL;
      size_t size = 1;
 
/* (1) */
      for (i = 0; (cs = strtok (s, ct)); i++)
      {
         if (size <= i + 1)
         {
            void *tmp = NULL;
 
/* (2) */
            size <<= 1;
            tmp = realloc (tab, sizeof (*tab) * size);
            if (tmp != NULL)
            {
               tab = tmp;
            }
            else
            {
               fprintf (stderr, "Memoire insuffisante\n");
               free (tab);
               tab = NULL;
               exit (EXIT_FAILURE);
            }
         }
/* (3) */
         tab[i] = cs;
         s = NULL;
      }
      tab[i] = NULL;
   }
   return tab;
}

et voici mon code:

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char ** str_split (char *, const char *);
 
int main()
{
char *ch1= "bonjour monsieur le coiffeur" ;
int i;
char **t = NULL;
 
t=str_split (ch1," ");
 
i=0;
 
while (t[i]!=NULL)
{
printf("%d\n", t[i]);
i++;
}
 
return 0;
 
}

Malheureusement ca plante et je ne vois pas pourquoi,

merci à vous !

User