remplacer un mot dans une chaine par un autre mot

remplacer un mot dans une chaine par un autre mot - C - Programmation

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 ?

Reply

Marsh Posté le 28-01-2004 à 15:33:39   

Reply

Marsh Posté le 28-01-2004 à 15:41:46    

regex ou pas ?
ton système bordel :o
 

Reply

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 :(

Reply

Marsh Posté le 28-01-2004 à 15:47:40    

taz a écrit :

regex ou pas ?
ton système bordel :o

[:quoted]

Reply

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 :kaola:
 
si quelqu'un d'autre a une idée :jap:

Reply

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)

Reply

Marsh Posté le 28-01-2004 à 15:56:02    

visual c++ 6.0 sous windows xp

Reply

Marsh Posté le 28-01-2004 à 16:00:58    

euh mais C ou C++ ?

Reply

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... ;) )

Reply

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>

Reply

Marsh Posté le 28-01-2004 à 16:05:37   

Reply

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é)

Reply

Marsh Posté le 28-01-2004 à 16:12:29    

non, mais c'est pas trop compliqué de s'appueyer dessus pour faire le boulot

Reply

Marsh Posté le 28-01-2004 à 16:15:58    

merci je vais essayer de me debrouiller avec ça :jap:

Reply

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).

Reply

Marsh Posté le 28-01-2004 à 16:45:12    

xilebo a écrit :

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).
 


 
c'est justement ça qui me posait problème :)

Reply

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).
 

Reply

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...

Reply

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.

Reply

Marsh Posté le 28-01-2004 à 17:03:38    

merci, je vais essayer :jap:

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed