Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3022 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Class String de la STL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Class String de la STL

n°714164
olympius
Posté le 03-05-2004 à 13:56:01  profilanswer
 

Je suis debutant,
 
j'ai lu qu'il fallait pas utiliser char* en c++.
On m'a conseillé d'utiliser la class String de la STL.
 
Est ce un bon conseille ? Je dois utiliser quel #include pour que ca marche??
 
Merci

mood
Publicité
Posté le 03-05-2004 à 13:56:01  profilanswer
 

n°714194
xterminhat​e
Si vis pacem, para bellum.
Posté le 03-05-2004 à 14:12:48  profilanswer
 

#include<string>
 
using namespace std;
 
string maChaine("Hello" );
 
http://www.sgi.com/tech/stl/basic_string.html


Message édité par xterminhate le 03-05-2004 à 14:30:49

---------------
Cordialement, Xterm-in'Hate...
n°714259
olympius
Posté le 03-05-2004 à 14:38:32  profilanswer
 

Code :
  1. #include <ostream.h>
  2.   #include <winsock.h>
  3.   #include <stdio.h>
  4.   #include "Mail.h"
  5.  
  6.   // Constructeur  
  7.   Mail::Mail(char* destinataire,char* expediteur,char* objet,char* message)
  8.   {
  9.      _destinataire=destinataire;
  10.      _expediteur=expediteur;
  11.      _objet=objet;
  12.      _message=message;
  13.   }
  14.  
  15.   // Destinataire  
  16.   char*
  17.   Mail::Destinataire()
  18.   {
  19.      return _destinataire;
  20.   }
  21.   /////////////////////////////////////  
  22.  
  23.    // Expediteur  
  24.   char*
  25.   Mail::expediteur()
  26.   {
  27.      return _expediteur;
  28.   }
  29.   /////////////////////////////////////  
  30.  
  31.    // Objet du message  
  32.   char*
  33.   Mail::objet()
  34.   {
  35.      return _objet;
  36.   }
  37.  
  38.   /////////////////////////////////////  
  39.  
  40.    // message  
  41.   char*
  42.   Mail::message()
  43.   {
  44.      return _message;
  45.   }


 
J'ai un code comme ca qui fonctionne.
 
Comment modifier ce code pour ne pas utiliser de Char* et pour que ca marche ???
J'arrive pas avec String!!!!!!!!!!!

n°714260
Taz
bisounours-codeur
Posté le 03-05-2004 à 14:39:17  profilanswer
 

non, ce code ne fonctionne pas mais alors pas du tout

n°714265
Taz
bisounours-codeur
Posté le 03-05-2004 à 14:42:47  profilanswer
 

j'avais oublié : oh du C

n°714272
olympius
Posté le 03-05-2004 à 14:50:46  profilanswer
 

Ah si ce code fonctionne

n°714273
olympius
Posté le 03-05-2004 à 14:51:10  profilanswer
 

enfin avec le reste

n°714274
olympius
Posté le 03-05-2004 à 14:51:32  profilanswer
 

ca c'est juste le .h de la classe

n°714276
Taz
bisounours-codeur
Posté le 03-05-2004 à 14:52:56  profilanswer
 

oui il compile, oui il tourne mais sinon il est complètement dangereux
 
en c++ on utilise les string, non pas parce que cai plus c++, mais surtout pour éviter aux débutants comme toi de faire absolument n'importe quoi avec les char * comme ici

n°714279
olympius
Posté le 03-05-2004 à 14:54:15  profilanswer
 

continue ton explication

mood
Publicité
Posté le 03-05-2004 à 14:54:15  profilanswer
 

n°714285
olympius
Posté le 03-05-2004 à 14:57:47  profilanswer
 

comment fo faire ?????????????????????????????????

n°714287
Taz
bisounours-codeur
Posté le 03-05-2004 à 14:58:16  profilanswer
 

Code :
  1. #include <string>
  2. using std::string;
  3. class Mail
  4. {
  5.   string destinataire;
  6. public:
  7.   Mail(const string &dest)
  8.     : destinataire(dest)
  9.   {
  10.     // NOOP
  11.   }
  12.   const string & Destinaire() const
  13.   {
  14.     return destinaire;
  15.   }
  16.   // ou bien on retourne une copie defensive
  17.   string  Destinaire() const
  18.   {
  19.     return destinaire;
  20.   }
  21.   // et si a se trouve t'as des accesseurs uniquement
  22.   // parce que tu n'a pas compris la constness
  23.   // ou d'autres histoires
  24. };

n°714307
olympius
Posté le 03-05-2004 à 15:07:02  profilanswer
 

effectivement, je comprend plus grand chose. lol  
Mais au moins je vais progresser !!!

n°714315
olympius
Posté le 03-05-2004 à 15:09:23  profilanswer
 

le constructeur s'etait bon alors ?????

n°714317
olympius
Posté le 03-05-2004 à 15:09:57  profilanswer
 

enfin sans les char*

n°714680
el muchach​o
Comfortably Numb
Posté le 03-05-2004 à 21:20:04  profilanswer
 

Passer des char* en parametre sans jamais passer de longueur, c'est un peu comme faire de la voltige sans filet. Au premier oubli d''\0' terminal (et non "\0", comme j'ai fait récemment ici-même), crac, la sanction est immédiate et définitive.
Visiblement, tu aimes le risque.
 
Heureusement, Mr C++ a inventé le string (pas de mauvaise plaisanterie, SVP). Avec la classe string, tu passes les chaines en paramètres sans avoir à gérer leurs longueurs, et ce sans aucun risque d'écrasement mémoire, et en plus, cette classe a le bon goût de venir avec tout un tas de méthodes bien pratiques pour le traitement des chaines de caractères.
Donc oui, il faut utiliser les string.
 
Si tu ne comprends pas le code de Taz, c'est qu'il est temps de prendre un bon bouquin de C++ et de le potasser (voir Biblio links C++).

n°715152
olympius
Posté le 04-05-2004 à 12:16:48  profilanswer
 

Si j'utilise mon code en remplacant tous les char* par des String, c'est correct ???

n°715160
xterminhat​e
Si vis pacem, para bellum.
Posté le 04-05-2004 à 12:30:18  profilanswer
 

Oui, mais pour plus de détail, applique exactement les recettes données dans l'exemple de taz.


---------------
Cordialement, Xterm-in'Hate...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Class String de la STL

 

Sujets relatifs
execution de stringconvertir un double ou un float en string ou en char
[Java] Retrouver le code java a partir des .class ?[C++/STL] list et parcours avec un itérateur : problème
Olevariant en string ?Question sur startWith de String
ANSI C++ Conversion int to stringConversion simple de String
Eclipse et Export Jar : Failed to load Main-Class ....[STL] class string et comparaison non case-sensitive
Plus de sujets relatifs à : Class String de la STL


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)