Rechercher mot dans chaîne caractère [TP en C ] - C++ - Programmation
Marsh Posté le 24-11-2002 à 09:53:02
Boyer-Moore?
http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
ou d'autres:
http://www-igm.univ-mlv.fr/~lecroq/string/index.html
A+,
Marsh Posté le 24-11-2002 à 10:05:09
gilou > joli
Marsh Posté le 24-11-2002 à 16:32:21
T bien gentil mais je suis newbie alors faudrait peut etre que quelqu'un m'explique.Sinon moi je dis UP !!!!!
Merci d'avance car la je suis dans le trou total
Marsh Posté le 24-11-2002 à 17:45:32
Il te faut utiliser la fonction
Code :
|
strstr(ch,"DTC" );
elle renvoit un pointeur sur la 1ère sous-chaîne commençant par le 2ème argument "DTC" ou renvoit NULL si ya pas.
Le principe c'est de trouver où est le motif (par strstr), de recopier le début de la chaîne dans une autre, d'y concaténer le motif de remplacement puis le reste de la chaîne originale.
Hum, plus clairement :
ch="salut taratata54" et tu veux mettre "gzip" à la place de "tar"
tu copies la debut dans ch2 -> ch2="salut "
tu rajoutes "gzip" -> ch2="salut gzip" avec strcat
puis tu termines -> ch2="salut gzipatata54"
sachant que strstr(ch,"tar" ) va renvoyer un pointeur sur le t de taratata54
bon d'accord c pas super clair mais je doit avoir une vieille fonction qui traine dans mes sources, je vais te la poster pour t'aider
Marsh Posté le 24-11-2002 à 18:08:19
voila, j'espère que ça va t'aider un peu
c'est peut être pas la meilleure méthode mais au moins ça marche
Code :
|
Pour les fichier, c'est la même logique, ouvre l'original et en parallèle un autre en écriture. tu recopies jusqu'à trouver le motif que tu remplaces par le nouveau puis tu continues
allez, bonne chance pour ton TP
Marsh Posté le 24-11-2002 à 18:12:37
t'es sympa mais on n'a dit qu'on faisait pas les devoirs des autres.
en plus un newbie va rien capter du tout: on reponds au gens en fonction de leurs connaissance
edit: en plus ta solution est loin d'etre tres propre
Marsh Posté le 24-11-2002 à 18:24:55
Taz@PPC a écrit a écrit : t'es sympa mais on n'a dit qu'on faisait pas les devoirs des autres. |
j'y ai pas tout fait, il reste encore le truc avec les fichiers
mon code n'est pas propre (c'est un vieux code qui trainait) mais tu vas surement le nettoyer si tu as le temps.
n'empeche que je v tenir compte de tes remarques
Marsh Posté le 24-11-2002 à 18:37:23
le but c'est d'abord l'algo, ensuite l'implémentation
ton code c'est du pur C imbitable et a l'algo que je devine, j'aurais pas fait comme ca
taratata54 > quel est ton niveau de connaissance sur les pointeurs et les fonctions de la biblitoheque standard, ton niveau d'etudes?
edit: tres beau le sizeof(char)
Marsh Posté le 24-11-2002 à 18:42:57
taz@ppc > ca m'intéresse de savoir comment tu aurais fait
le sizeof(char) c'est pour être plus explicite que 1 pour ceux qui ne le savent pas
Marsh Posté le 24-11-2002 à 19:02:35
Merci quand même d'avoir répondu à ma demande d'aide, même si on fait pas les devoirs des autres !...
Bien qu'étudiant bac+5, mon niveau en informatique est quasiment nul, le prof nous a simplement dit de s'autoformer avec les bouquins et les exo en classe. Alors pour l'instant, je découvre.
J'ai vu les tableaux, je commence les fichiers, mais j'y vais doucement.
Merci à vous tous pour votre aide !
CIAO
Marsh Posté le 26-11-2002 à 13:43:32
si tu ve de l'aide, ben v'la un conseil, tente d'abord le vb, c 15 fois plus simple pour comprendre la structure d'un programme, y a pa a ce faire chier avec les pointeurs et compagnie, et ca aura le merite de t'apprendre pensée tes programmes, et plus ca s'apprend vite =) (jai mis 2 jours). Enfin c n'est que mon humble avis....
Marsh Posté le 26-11-2002 à 13:44:10
et meme si tu ve pe t'expliquer comment reglé ton probleme en vb =)
Marsh Posté le 26-11-2002 à 13:55:39
was here
Marsh Posté le 24-11-2002 à 09:42:28
"Le TP consiste dans un premier temps à rechercher un mot (ou motif) dans une chaine de caractère et le remplacer par un autre mot choisi auparavant.
Ensuite, faire cette même recherche et ce même remplacement pour un mot dans un fichier."
Je débute en C et je galère pour ce TP.
Merci à ceux ou celles qui voudraient bien m'aider !