CLASSE CSTRING : GESTION DE CHAINES DE CARACTÈRES EN C++

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 23 août 2004 à 14:52
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/25609-classe-cstring-gestion-de-chaines-de-caracteres-en-c

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
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és 16 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 13 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és 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 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és 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 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;

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...
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
24 août 2004 à 10:01
1 dernier pr la rte :

if(strcasecmp(ptr, string.getPtr())==0)
return true;
return false;

no comment