Fonction AddSlashes

Fonction AddSlashes - C++ - Programmation

Marsh Posté le 24-06-2004 à 20:11:44    

Salut à tous,
 
je sens que je vais me faire fustiger par certains d'entre vous, mais je poste quand même:
 
que pensez vous de ma fonction AddSlashes?
 

Code :
  1. std::string Add_Slashes(std::string toto)
  2. {
  3. const std::string delimit = "\\";
  4. std::string::size_type begin = 0;
  5. while ((begin = toto.find_first_of(delimit,begin)) != std::string::npos)
  6. {
  7.         toto.insert(begin,delimit);
  8.         begin += 2;
  9. }
  10. return toto;
  11. }


 
Mais bon si ça se trouve il existe déjà une fonction équivalente, mais j'ai pas trouvé :(

Reply

Marsh Posté le 24-06-2004 à 20:11:44   

Reply

Marsh Posté le 24-06-2004 à 20:58:18    

que ton delim ferait mieux d'être un caractère et pas une chaine et donc que tu utilise .find
 
renomme begin en offset
 
et prends un nom de variable décent

Reply

Marsh Posté le 24-06-2004 à 21:05:14    

Taz a écrit :

que ton delim ferait mieux d'être un caractère et pas une chaine et donc que tu utilise .find


 
Quelle différence ça fait ??
 

Taz a écrit :


et prends un nom de variable décent


 
C'était juste pour l'exemple ;)

Reply

Marsh Posté le 24-06-2004 à 21:06:43    

ça fait que c'est plus rapide et que t'évite de chercher/insérer une chaine quand tu veux en fait chercher/insérer un caractère

Reply

Marsh Posté le 24-06-2004 à 21:12:27    

Ca devient ça:
 

Code :
  1. std::string Add_Slashes(std::string chaine)
  2. {
  3. const char * delimit = "\\";
  4. std::string::size_type offset = 0;
  5. while ((offset = chaine.find(delimit,offset)) != std::string::npos)
  6. {
  7.         chaine.insert(offset,delimit);
  8.         offset+= 2;
  9. }
  10. return chaine;
  11. }

Reply

Marsh Posté le 24-06-2004 à 21:16:59    

toujours pas ... si tu commençais par faire __tout__ ce que je te dit ...

Reply

Marsh Posté le 24-06-2004 à 21:50:54    

Il n'y a que ça dont je ne suis pas sûr:
 

Citation :

que ton delim ferait mieux d'être un caractère et pas une chaine et donc que tu utilise .find

Reply

Marsh Posté le 24-06-2004 à 23:55:33    

const char delim = '\\';


---------------
-( BlackGoddess )-
Reply

Sujets relatifs:

Leave a Replay

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