Chaine de caractères et liste de mots

joshua509 Messages postés 2 Date d'inscription jeudi 31 décembre 2009 Statut Membre Dernière intervention 9 février 2010 - 12 janv. 2010 à 15:52
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011 - 31 janv. 2010 à 12:16
J'ai un gros problème d'algorithme. Comment faire pour placer,tous les mots séparer d'un espace d'une chaine de caractère,dans une liste chainée de mot?
Aidez moi s'il vous plait Merci.

5 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
12 janv. 2010 à 16:01
La méthode est la suivante. Je considère que tu as déjà la fonction d'insertion dans une liste chaînées:

- Tu poses un pivot (en fait un pointeur) en début de chaine appelé "pivotDebut"
- Tu parcours ta chaîne, et quand tu rencontres un espace, tu pose dessus un autre pointeur appelé "pivotFin"
- Tu extrais la chaîne comprise entre pivotDebut et pivotFin, via strncpy(taVariable, pivotDebut, pivotFin - pivotDebut)
- Tu ajoute dans la liste chaînées, cette chaîne
- Tu place le "pivotDebut", sur la même position que "pivotFin"
- Tu recommences ce procédé, tant que tu n'arrives pas à la fin de la chaîne.


_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
31 janv. 2010 à 12:11
voila -je crois- la meilleur façons de s'y prendre;
facile en meme temp :


Sub extraction_esp()
    Dim Tableau(),chaine_sans_espace As String = ""
    Dim i As Integer
    
    'découpe la chaine en fonction des espaces " "
    'le résultat de la fonction Split est stocké dans un tableau
    Tableau = Split("Salut voila ma proposition pour ton probleme", " ")
    
    'boucle sur le tableau pour visualiser le résultat
    For i = 0 To UBound(Tableau)
    	chaine_sans_espace += tableau(i)
    Next i
End Sub


ce qui va te retourner une chaine -la chaine_sans_espace- sous forme de :
"salutvoilamapropositionpourtonprobleme"

j'espere t'avoir aider bonne chance .


Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
31 janv. 2010 à 12:13
C'est un forum C++ pas VB...
Tu utilises une fonction déjà faite, il n'y a pas de réflexion algorithmique derrière (qui est le but de l'exercice qui lui est donné derrière).

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
0
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
31 janv. 2010 à 12:15
tu peux aussi changer l'espace dans la fonction split par tout autre chose que tu aimrai exclure de ta chaine.

exp: Split("Salut, voila ma proposition, pour ton, probleme", ",")

cela exclura la virgule ;)
Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_saadox Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 6 juin 2011
31 janv. 2010 à 12:16
ah oui c'est vrai j'avais pas fait attention c'est du C++... Je retire ma solution alors.

Developper c'est créer une nouvelle vie, Celle qu'on trouve parfaite...Saad.
0
Rejoignez-nous