DU CHAR* AU STRING: COMMENT LES PIÈGES DU C SONT RÉSOLUS EN C++

Signaler
Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
-
Messages postés
121
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
14 mars 2009
-
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/10358-du-char-au-string-comment-les-pieges-du-c-sont-resolus-en-c

Messages postés
121
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
14 mars 2009
1
Pas mal, à part quelques passages de codes dans le PDF qui sont un peu illisibles...
Du char-abia, quoi.
(Désolé, j'ai pas pu me retenir ^^);
Messages postés
1
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
7 février 2005

Bonjour, je suis une newbie de chez newbie. J'ai voulu télécharger les documents mais je n'ai pas réussi :(
Messages postés
35
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
12 novembre 2004

Le document pdf dans le zip est très intéressant.
La présentation est sérieuse avec de l'humour ce qui ne gâte rien. Elle incite à l'utilisation de l'objet standard du C++, STRING.

Sur Deuxième partie C++, j'ajouterais par rapport au document et aux commentaires :
- Il ya un point important sur lequel il faut mettre l'accent : Le couplage string et flux de données avec les opérateurs >> et << qui facilitent la programmation. Il est tellement naturel que dans le document cela n'a pas été suffisamment signalé, de mon point de vue.
- J'ajouterai pour être complet que string dispose de « pointeurs intelligents qui offrent à la fois de la sécurité et du service » : les itérateurs. D'ailleurs ils sont mis en ?uvre pour utiliser la fonction algorithm « replace() » et traverser la chaîne str2 à la page 12.
- On pourrait ajouter qu'il existe un flux de données « iostringstream » qui apporte de véritables services pour effectuer les conversions de type. Souvent les programmateur C++ butent sur ces problèmes alors qu'un objet est disponible en standard pour assurer la gestion des flux chaîne et les formater.

Aux programmeurs C++ ouvrez le zip lisez le pdf.

Il y a un débat entre C et C++ dans les commentaires qui, d'après moi, n'a pas lieu d'être.
Soyons positifs : Que ceux qui font du C le fassent bien et que ceux qui font de l'objet avec C++ en fassent de même.
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
y en a qui construisent ... y en a qui cherchent à casser.
je vois que tu n'a pas compris grand chose mais ce n'est pas une raison pour polluer négativement le site. (Relis les explications et teste les correctement : le code est fourni)
Etre contre les conventions standards qui consistent à préfixer par 'p' les variables de type pointeur est un choix personnel...
Attention quand tu traite d'allocation dynamique le char * p="abc"; (c'est du statique => donc tout à fait l'opposé!)
ou est donc le new? le malloc?
le problème du multi-référencement de zone mémoire, de l'optimisation (comptage de références,etc...) est très courant dans les gros logiciels... il faut donc en tenir compte (Aliassing et savoir le gérer)
Quand à mettre des 0 binaires dans une chaîne, ils y sont très souvent lorsque l'on traite des fichiers ... binaires et il faut savoir les traiter. (exemple Algorithmes de cryptage/compression/sérialisation/...)
Un char p[] est alloué sur la pile et donc libéré automatiquement en sortie de bloc... l'article ne dit pas le contraire
Merci quand même pour m'avoir fait remarqué l'emploi erroné p5 (sur 24) de char*const (j'ai modifié le pdf)
Mais contrairement à ce que tu dis un char* const EXISTE bien ! c'est un pointeur constant
alors que const char* signifie pointeur sur constante
Afficher les 9 commentaires