CLASSE CSTRING : GESTION DE CHAINES DE CARACTÈRES EN C++
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
23 août 2004 à 14:52
guill76
Messages postés193Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 3 juin 2016
-
6 août 2007 à 19:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 23 août 2004 à 14:52
deja bravo pour le code, la classe est assez complete et fonctionnelle
quelque remarque en passant, tu devrais stocker la taille dans une variable et faire un ascesseur inline plutot que de faire appel a chaque fois à strlen, ca peux devenir penalisant lors de plusieurs appels dans une boucle
ne specifie pas const une variable passé par
valeur "const int number" ca n'a aucune utilité
a quoi sert setPtr ? tu as deja le constructeur char* et l'operateur = char*
Soilwork9
Messages postés16Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention13 septembre 2004 23 août 2004 à 16:34
Salut, et merci pour ton message!
Pour la longueur, tu as surement raison, je vais voir si je peux mettre a jour une variable représentant la longueur dans la méthode reallocation. Mais je dois verifier qu'il n'y a aucune méthode qui mette a jour la chaine sans passer par reallocation (raccourcissement de chaine en inserant juste un \0, par exemple)...
Pour le const : ARF! Ne me demande pas pourquoi j'ai fait ca, je ne saurais pas te repondre ;p Je devais etre dans une periode const a ce moment la, j'en mettais partout, lol. 'fin bon, c'est enlevé, et on fera comme si ca n'etait jamais arrivé ^_^
setPtr ne sert a rien, un peu comme isPalindrome peut-etre (lol), mais en plus setPtr est mal fait (mauvaise utilisation de strcpy, a priori... Pas de réallocation). Vais peut-etre le virer aussi ;)
Merci en tout cas, et a plus tard!
++
Soilwork
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 24 août 2004 à 09:35
Bien...
Je déconseille cependant le nom de CString deja utilisé par les MFC, ça peut créer des confusions...
Une remarque : ton opérateur de réallocation vire tout ce que pouvait contenir ta chaine...
Magicalement...
Nono.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 24 août 2004 à 09:55
rq2 : pq des ";" après chaque méthode définie ds le header?
à quoi sert equals, == suffit
une des 2 fonctions suivantes, est inutiles:
CString substring(int index) const;
CString substring(int index, int length) const;
il suffit de faire le distingo au sein d'une seule
CString substring(int index, int length=-1) const;
23 août 2004 à 14:52
quelque remarque en passant, tu devrais stocker la taille dans une variable et faire un ascesseur inline plutot que de faire appel a chaque fois à strlen, ca peux devenir penalisant lors de plusieurs appels dans une boucle
ne specifie pas const une variable passé par
valeur "const int number" ca n'a aucune utilité
a quoi sert setPtr ? tu as deja le constructeur char* et l'operateur = char*
23 août 2004 à 16:34
Pour la longueur, tu as surement raison, je vais voir si je peux mettre a jour une variable représentant la longueur dans la méthode reallocation. Mais je dois verifier qu'il n'y a aucune méthode qui mette a jour la chaine sans passer par reallocation (raccourcissement de chaine en inserant juste un \0, par exemple)...
Pour le const : ARF! Ne me demande pas pourquoi j'ai fait ca, je ne saurais pas te repondre ;p Je devais etre dans une periode const a ce moment la, j'en mettais partout, lol. 'fin bon, c'est enlevé, et on fera comme si ca n'etait jamais arrivé ^_^
setPtr ne sert a rien, un peu comme isPalindrome peut-etre (lol), mais en plus setPtr est mal fait (mauvaise utilisation de strcpy, a priori... Pas de réallocation). Vais peut-etre le virer aussi ;)
Merci en tout cas, et a plus tard!
++
Soilwork
24 août 2004 à 09:35
Je déconseille cependant le nom de CString deja utilisé par les MFC, ça peut créer des confusions...
Une remarque : ton opérateur de réallocation vire tout ce que pouvait contenir ta chaine...
Magicalement...
Nono.
24 août 2004 à 09:55
à quoi sert equals, == suffit
une des 2 fonctions suivantes, est inutiles:
CString substring(int index) const;
CString substring(int index, int length) const;
il suffit de faire le distingo au sein d'une seule
CString substring(int index, int length=-1) const;
idem, rassemble
CString &toLowerCase(); //En minuscules
CString &toUpperCase(); //En majuscules
CString &capitalize();
en une seule fonc
etc
sinon, je retrouve po mal mes BString & +
Magicalement...
24 août 2004 à 10:01
if(strcasecmp(ptr, string.getPtr())==0)
return true;
return false;
no comment