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:
et ptr est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ptr = split("bonjour les amis"," ");
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 *ptr[4]; ptr[0] = "bonjour" ptr[1] = "les" ptr[3] = "amis" ptr[3] = NULL;
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
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); } }
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; }
Partager