Remplacer le caractere " \ " par " \\" dans une chaine.....

Remplacer le caractere " \ " par " \\" dans une chaine..... - C++ - Programmation

Marsh Posté le 15-05-2003 à 20:06:45    

Bonsoir , j'ai un probleme je n'arrive pas a remplacer le caractere \ par \\ dans une chaine. Ma chaine est un chemin de repertoire du type c:\allo\amen
Et je voudrais obtenir c:\\allo\\amen
Or avec la fonction strchr , celle-ci me suprime tout les \ avec borland ou visual c la meme chose.
Est ce que quelqu'un pourais me donné une soluce pour que je puisse remplacer \ par \\ dans ma chaine.
Merci d'avance...

Reply

Marsh Posté le 15-05-2003 à 20:06:45   

Reply

Marsh Posté le 15-05-2003 à 20:16:58    

addslashes()
 
edit:ca c'est en php,je sais pas si c'est pareil en c/c++ :D


Message édité par forummp3 le 15-05-2003 à 20:17:31

---------------
lecteur mp3 yvele's smilies jeux de fille
Reply

Marsh Posté le 15-05-2003 à 20:20:41    

non la fonction n'existe pas en c/c++ inconnu au bataillon merci quand meme

Reply

Marsh Posté le 15-05-2003 à 20:30:07    

le caractere \\ n'existe pas je crois, mais la chaine de caractere \\ oui.
 
en c++ :

Code :
  1. string::size_type i = 0;
  2. while ((i = str.find('\\', i)) != (string::size_type)(-1))
  3. str.replace(i++, 1, _T("\\\\" ));


 
en c-unix : meme pas envie d'y penser.

Reply

Marsh Posté le 15-05-2003 à 20:32:39    

ok je te remercie je vais de ce pas tester le code

Reply

Marsh Posté le 15-05-2003 à 20:52:38    

roromaino a écrit :

Ma chaine est un chemin de repertoire du type c:\allo\amen
Et je voudrais obtenir c:\\allo\\amen


 
:heink: y a un truc que je capte pas dans l'histoire...
\\ tapé dans l'éditeur se transforme en \ en mémoire, et c'est pour ça qu'il faut taper \\
mais je vois pas pourquoi tu veux transformer les \ qui sont en mémoire en \\ :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-05-2003 à 20:59:24    

\\salut\antp\ca va?\\ tu desertes blabla\\

Reply

Marsh Posté le 15-05-2003 à 21:12:44    

Konar a écrit :

le caractere \\ n'existe pas je crois, mais la chaine de caractere \\ oui.
 
en c++ :

Code :
  1. string::size_type i = 0;
  2. while ((i = str.find('\\', i)) != (string::size_type)(-1))
  3. str.replace(i++, 1, _T("\\\\" ));


 
en c-unix : meme pas envie d'y penser.


 
je tiens a corriger pour les puristes!
 
On ecrit pas "(string::size_type)(-1)"
mais "(string::npos)"; plus besoin de cast en plus.


Message édité par konar_spreme le 15-05-2003 à 21:13:21
Reply

Marsh Posté le 15-05-2003 à 21:39:22    

ouf, j'ai eu peur, j'étais estomaqué: surtout un cast C  :ouch:

Reply

Marsh Posté le 16-05-2003 à 15:14:26    

t'as raison antp , ya pas besoin de mettre \\ car la chaine est en memoire, il n'y a que sous le compilateur qu'il faut mettre //. Je suis con je suis en train de perdre mon temps pour des conneries. Enfin c comme ca qu'on avance.
merci antp.

Reply

Sujets relatifs:

Leave a Replay

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