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

  FORUM HardWare.fr
  Programmation
  C++

  string ou char * ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

string ou char * ?

n°315481
lapiou
fuji s602z
Posté le 22-02-2003 à 14:13:02  profilanswer
 

bonjour,  
 quand on prgm en C++ une application, vaut-il mieux utiliser le type string ou char * ? peut-on faire les memes choses avec les 2?

mood
Publicité
Posté le 22-02-2003 à 14:13:02  profilanswer
 

n°315483
HelloWorld
Salut tout le monde!
Posté le 22-02-2003 à 14:20:15  profilanswer
 

Ouh là, c'est de la graine de troll !
Je dirais : si t'es en C++, utilises string.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°315485
lapiou
fuji s602z
Posté le 22-02-2003 à 14:22:06  profilanswer
 

Ôh grand manitou, excuse moi pr ce malheureux troll.
merki ;)

n°315486
Taz
bisounours-codeur
Posté le 22-02-2003 à 14:28:31  profilanswer
 

:heink: tu te poses vraiment la question ou c'est un troll du vendredi qui est un peu à la bourre?

n°315509
verdoux
And I'm still waiting
Posté le 22-02-2003 à 15:51:21  profilanswer
 

CString

n°315517
Kristoph
Posté le 22-02-2003 à 15:54:29  profilanswer
 


 
[:tapai]


Message édité par Kristoph le 22-02-2003 à 15:54:49
n°315522
Taz
bisounours-codeur
Posté le 22-02-2003 à 16:02:09  profilanswer
 

lapiou a écrit :

bonjour,  
 quand on prgm en C++ une application, vaut-il mieux utiliser le type string ou char * ? peut-on faire les memes choses avec les 2?  

avec le std::string, on peut faire bien plus de choses, tout cela de façon sure: j'ai beau chercher, je ne vois aucune raison de préferer les char*

n°315568
nraynaud
lol
Posté le 22-02-2003 à 17:54:17  profilanswer
 

++Taz a écrit :

avec le std::string, on peut faire bien plus de choses, tout cela de façon sure: j'ai beau chercher, je ne vois aucune raison de préferer les char*


Surtout que si éventuellement t'es pas jouasse avec la version classique des strings, tu crées la tienne, et (normalement) personne n'y voit que du feu.

n°315705
LeGreg
Posté le 23-02-2003 à 00:32:36  profilanswer
 

++Taz a écrit :

avec le std::string, on peut faire bien plus de choses, tout cela de façon sure: j'ai beau chercher, je ne vois aucune raison de préferer les char*


 
Tu ne peux pas creer de string en static,
j'ai beau me creuser la tete, toute creation  
de std::string a partir d'un litteral me dupliquera
la chaine quelque part..
(pas bien grave je le reconnais mais c'est pour l'anecdote)
 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°315707
Taz
bisounours-codeur
Posté le 23-02-2003 à 00:40:23  profilanswer
 

oui ça dupliquera, cependant tu peux quand meme avoir string static. la duplication est sans doute une bonne chose, elle evitera  les problèmes qu'on pourait avoir en modification, par ce que les pointeurs, meme const, c'est pas terrible niveau sécurité. de meme, pas moyen passer outre une const string (sauf si c'est ce qu'on cherche)

mood
Publicité
Posté le 23-02-2003 à 00:40:23  profilanswer
 

n°315726
LeGreg
Posté le 23-02-2003 à 03:26:26  profilanswer
 

"je ne peux pas manger a ma faim mais c'est sans doute
une bonne chose au moins je ne peux pas devenir trop gros.."
 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°316149
Hercule
Posté le 24-02-2003 à 09:02:03  profilanswer
 

Un seul cas ou le char * est mieux que le string, c'est lorsqu'on est tenté de faire un peu trop de concaténation (très lourde en string).
C'est pas rare que sur certain programme de parsing (ou tu ne fait que du traitement sur du texte) tu gagnes 50% de vitesse en plus. Mais pour tout autre utilisation s'est mieux les strings.


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°316155
chrisbk
-
Posté le 24-02-2003 à 09:15:16  profilanswer
 

(stupid question : la std::string permet elle le formatage facon sprintf ?)

n°316192
gloop
Posté le 24-02-2003 à 09:55:30  profilanswer
 

chrisbk a écrit :

(stupid question : la std::string permet elle le formatage facon sprintf ?)
 


t'as les flux sur les chaines pour ca (std:: ostringstream)


Message édité par gloop le 24-02-2003 à 09:55:39
n°316767
HelloWorld
Salut tout le monde!
Posté le 24-02-2003 à 18:41:11  profilanswer
 

Citation :

Un seul cas ou le char * est mieux que le string, c'est lorsqu'on est tenté de faire un peu trop de concaténation (très lourde en string).

 
 
meme pas, reserve() permet d'éliminer le probleme


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°316780
Taz
bisounours-codeur
Posté le 24-02-2003 à 18:50:29  profilanswer
 

de toutes façons quand on commence à voulir un peut trop jouer avec les char* brutes, on finit vite par se vautrer comme une otarie bourrée

n°317863
Hercule
Posté le 25-02-2003 à 23:06:04  profilanswer
 

HelloWorld a écrit :

Citation :

Un seul cas ou le char * est mieux que le string, c'est lorsqu'on est tenté de faire un peu trop de concaténation (très lourde en string).

 
 
meme pas, reserve() permet d'éliminer le probleme


 
J'ai dit qu'on était tenté. L'écriture est tellement plus simple qu'avec des char *, mais ca fait aussi beaucoup de trucs.
La preuve avant-hier un type qui était à coté de moi vient de s'apercevoir qu'il avez fait de jolies concaténations qui lu bouffait plus de la moitier du traitement (donc traitement en char * pour passer en string).
Tu te rend compte que les strings même avec le reserve() bouffe un poil plus que les char * (et il faut se méfier des copy constructeur qui se font si on n'y fait pas gaffe). Mais comme on s'en sert pas pour des gros traitement temps réel c'est pas grave, et c'est bien plus sur.
 
C'est très dangereux les char* et les fuites de mémoire les adorent (ca m'empêche pas de les utiliser sur les "one man projet" ).
 
 


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°317876
nraynaud
lol
Posté le 25-02-2003 à 23:18:07  profilanswer
 

hercule a écrit :

Un seul cas ou le char * est mieux que le string, c'est lorsqu'on est tenté de faire un peu trop de concaténation (très lourde en string).
C'est pas rare que sur certain programme de parsing (ou tu ne fait que du traitement sur du texte) tu gagnes 50% de vitesse en plus. Mais pour tout autre utilisation s'est mieux les strings.


je comprends pas, strcat est obligé de parcourir les 2 chaines alors que dans la version de base de string, la longueur est stockée. D'autre part, je vois pas pourquoi ne pas utiliser un streamBuffer ?  
 
Au passage : spéciale gueulante contre java avec son toString() à la con alors que smalltalk avait printOn:/displayOn: qui te permets d'économiser de la mémoire (puisque tu peux le faire directement sur le buffer de sortie sans créer la chaîne intermédiaire).

n°317881
Joel F
Real men use unique_ptr
Posté le 25-02-2003 à 23:27:05  profilanswer
 

+1 pr l'utilisation de strstream.
c bien utile et bien pensé :)

n°340646
Musaran
Cerveaulté
Posté le 23-03-2003 à 02:28:12  profilanswer
 

nraynaud a écrit :

Surtout que si éventuellement t'es pas jouasse avec la version classique des strings, tu crées la tienne, et (normalement) personne n'y voit que du feu.

triple négation...
Donc on s'en rend compte ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

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

  string ou char * ?

 

Sujets relatifs
Convertir une classe String en int ???[Access] j'arrive pas a transformer un string
STL - Comment faire l'équivalent d'un "trim" sur une basic_stringles char * en mfc ??
Comment transfomer de l'hexa en char ou en String ?Mettre UNE String en couleur.. + jouer un son
charCopie d'un fichier dans un tableau a 2 entrées de string
[C++] CString -> char 
Plus de sujets relatifs à : string ou char * ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR