1

si vous pouviez m'aider... c assez urgent

j'ai besoin d'une fonction break_lines, qui quand on lui file un (ou une?) string, retourne une liste de paires; chaque paire est constituée du début du (de la?) string, et de la fin, la cassure etant opérée au début de chaque mot de ce (cette?) string
un exemple, paske ca n'a pas l'air clair dit comme ca:
break_lines "J'ai un bateau,"
doit retourner la liste de paires
[("J'ai un bateau," , ""), ("un bateau," , "J'ai "), ("bateau,", "J'ai un "), (", " , "J'ai un bateau")]

N.B: Ce n'est pas du C, mais du Haskell. Donc laissez tomber les exemples de code. Je cherche plutot un algo, paske ttes les idées que j'ai eu sont irréalisables, ou prendraient un temps fou (que je n'ai pas, fo rendre le projet dans 10 jours grin).
Si ca peut aider (je pense qu'il fo utiliser cette fonction), j'ai déjà défini une fonction word_locations qui retourne la position du début de chaque mot dans la phrase.
exemple: word_locations "J'ai un bateau," donne [0, 5, 8]

PS: le but final est de réaliser un index Keyword in Context (ou KWIC) qui permet d'avoir le nombre d'apparitions d'un certain mot dans un texte, avec les numéros de lignes. J'ai fini pas mal de trucs, mais il me reste quelques fonctions à faire, et celle là me bloque totalement!
avatar
With your feet in the air and your head on the ground
Try this trick and spin it, yeah
Your head will collapse
But there's nothing in it
And you'll ask yourself
Where is my mind

2

bon, laissez tomber, je l'ai fait
break_lines string = [ swap (splitAt x string) | x <- word_locations string]
c simple une fois qu'on a trouvé....roll
avatar
With your feet in the air and your head on the ground
Try this trick and spin it, yeah
Your head will collapse
But there's nothing in it
And you'll ask yourself
Where is my mind