remplacer un mot dans une chaine par un autre mot - C - Programmation
Marsh Posté le 28-01-2004 à 15:46:32
taz a écrit : regex ou pas ? |
????????????
ben je voudrais juste remplacer un mot ou expression contenu dans une chaine de caracteres par un autre
Marsh Posté le 28-01-2004 à 15:53:38
je comprend rien a ce que tu dis mais c'est toujours sympa de m'aider
si quelqu'un d'autre a une idée
Marsh Posté le 28-01-2004 à 15:54:31
ben avec regex ou pas ? (à priori non)
sur quel système tu es ? (histoire de profiter de certaines facilités locales)
Marsh Posté le 28-01-2004 à 16:03:45
en C (c'est dans le titre du topic, c'est pour ca que comprenait pas ce que tu me demandais... )
Marsh Posté le 28-01-2004 à 16:05:37
bah top t'es parti : tu fais l'algo, et ensuite tu le code avec tout ce que tu peux trouver dans <string.h>
Marsh Posté le 28-01-2004 à 16:10:12
mais il existe pas une fonction toute prete ?? (un peu comme strstr() mais en remplaçant le mot trouvé)
Marsh Posté le 28-01-2004 à 16:12:29
non, mais c'est pas trop compliqué de s'appueyer dessus pour faire le boulot
Marsh Posté le 28-01-2004 à 16:31:04
l'algo est assez simple. Faut juste faire gaffe à :
- le mot à remplacer fait-il la même taille (la ça va).
- est-il plus petit (pas trop dur).
- est-il plus grand (faut faire gaffe).
Marsh Posté le 28-01-2004 à 16:45:12
xilebo a écrit : l'algo est assez simple. Faut juste faire gaffe à : |
c'est justement ça qui me posait problème
Marsh Posté le 28-01-2004 à 16:48:38
bah plus petit c est pas trop genant, mais si le mot est plus grand, tu devras aggrandir ta chaine de caractère (tout dépend bien sur de la facon dont tu stockes ta chaine).
Marsh Posté le 28-01-2004 à 16:52:39
la chaine est stockée en statique (chaine[100]) mais je vais faire une fonction qui gère le dépassement...
Marsh Posté le 28-01-2004 à 16:57:19
Et bien si tu n'as pas le choix, il te faut calculer la valeur taillechaine -tailleancienmot+ taillenouveaumot et si ca depasse 100 (ou plutot 99 a cause du '\0') , tu interdis le remplacement (sinon tu perds des données).
M'enfin il vaudrait mieux utiliser une chaine allouée dynamiquement que tu pourras redimensionner à souhait.
Marsh Posté le 08-02-2004 à 14:08:08
oui là tu as toutes les données en main , il n'y a plus qu'a faire.
si tu as apres un soucis de fontionnement tu postes ton code , et on verra apres , chaque chose en son temps.
tien nous au courant de l'evolution
cordialement
Marsh Posté le 28-01-2004 à 15:33:39
existe t-il une fonction en c qui permette de remplacer un mot d'une chaine par un autre mot, un peu comme str_replace en php ?