TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |||
| Auteur | Message | ||
|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||
| Page : 1 | |||
So SexY
|
# Posté le 03/12/2005 à 13:58:59 | ||
Life();![]() Groupe : Membres |
Salut,
Pour savoir si on alloue de la memoire quand on declare une variable de type string. Comme pour char : char MaVariable[15]; Merci. So SexY CMS : Soon. Toute chose est objet. Mùhh |
||
rz0
|
# Posté le 03/12/2005 à 14:55:42 | ||
meuh![]() Groupe : Membres |
Non, l'intér^et des strings est de tout allouer pour toi.
string s; cin >> s;
|
||
Saimoun
|
# Posté le 03/12/2005 à 15:05:01 | ||
La vie est la vie !![]() Groupe : Membres |
Les "string", c'est en C++
En C, tu peux faire un tableau ou un pointeur (ils sont équivalents). Par exemple : Code : C char prenom[255];
const char *message_accueil = "Hello all people ;) !";
Édité
le 03/12/2005 à 15:07:33
par Saimoun
|
||
rotoclap
|
# Posté le 03/12/2005 à 17:05:35 | ||
Secrétaire intérim du SdZ![]() ![]() |
Citation : Saimoun
En C, tu peux faire un tableau ou un pointeur (ils sont équivalents).
Par exemple : Code : C char prenom[255]; const char *message_accueil = "Hello all people ;) !"; Arg, ton const char, je sais pas si il marche. Tu déclares un pointeur sur char sans allouer aucune mémoire pour stocker ta phrase. const char message_accueil[] = "Hello all people !"
Ca ca marche Code : Bash
|
||
bluestorm
|
# Posté le 03/12/2005 à 17:09:56 | ||
dont ask to ask![]() Groupe : Membres |
et c'est quoi la différence entre *message_acceuil et message_acceuil[] ?
|
||
rotoclap
|
# Posté le 03/12/2005 à 17:12:53 | ||
Secrétaire intérim du SdZ![]() ![]() |
Ben [] c'est un tableau de taille indéterminée, sauf au moment de la compilation où il définit ce qu'il faut. Un *, ca n'alloue rien du tout.
Code : Bash
|
||
rz0
|
# Posté le 03/12/2005 à 17:19:50 | ||
meuh![]() Groupe : Membres |
C'est valide de faire
const char *s = "foobar"; En effet, "foobar" est déjà un tableau de caractères alloué automatiquement par le compilateur de manière statique/globale.
|
||
Saimoun
|
# Posté le 03/12/2005 à 19:23:33 | ||
La vie est la vie !![]() Groupe : Membres |
Non, c'est vrai, j'aurai du faire un new[]
|
||
So SexY
|
# Posté le 04/12/2005 à 16:51:21 | ||
Life();![]() Groupe : Membres |
Ok merci.
Citation : Saimoun Les "string", c'est en C++
![]() Ouep, cf titre du post ;p So SexY CMS : Soon. Toute chose est objet. Mùhh |
||
Zoloom
|
# Posté le 04/12/2005 à 17:09:02 | ||
Cauchemard compilatoire![]() Groupe : Membres |
Tu declare comme ca:
Code : C++ string truc("hello");
Mais je te conseille les char, paske tu verra que dans beaucou de fonctions (en c++, en c je sais pas tro) tu ne pourra pas mettre de string (surtout avec les paramètres)... |
||
Garuma
|
# Posté le 04/12/2005 à 17:17:50 | ||
using Mono.C#;![]() Groupe : Membres |
Citation : Uims
Mais je te conseille les char, paske tu verra que dans beaucou de fonctions (en c++, en c je sais pas tro) tu ne pourra pas mettre de string (surtout avec les paramètres)...
En C++ quand tu as une classe qui te facilite la vie pour les string vaut mieux l'utiliser, en plus ca correspond mieux à la philosophie objet, c'est plus sur et c'est plus rapide. Pour les fonctions je suppose que tu parle de celles qui manipulent les chaînes de caractère mais en fait quand tu utilise la classe string ces fonctions ont leur équivalent intégré dans la classe.
Édité
le 04/12/2005 à 17:20:16
par Garuma
|
||
louisclem
|
# Posté le 04/12/2005 à 17:38:33 | ||
J'aime le![]() Groupe : Membres |
Citation : Garuma
et c'est plus rapide Je ne vois pas comment un string, qui utilises des classes, pourrait être plus rapide que le char qui est directement un pointeur...
|
||
Garuma
|
# Posté le 04/12/2005 à 18:25:33 | ||
using Mono.C#;![]() Groupe : Membres |
Citation : Developpez.com
Programmer en utilisant std::string est incontestablement plus rapide, plus lisible et plus sûr que de programmer en utilisant les antiques char*. Si votre but est d'écrire un programme qui marche et qui soit facile à maintenir, utiliser string est un bien meilleur choix. Il est en effet tentant de dire qu'utiliser les char* fait surtout planter le programme plus vite.
Il faut aussi relativiser la possible lenteur de string par le fait que l'écart est très souvent sans conséquence pour l'utilisateur. Même si lire et afficher une chaîne de caractères est deux fois plus lent avec les string qu'avec les char*, l'écart est dans ce cas dérisoire voire non mesurable. Néanmoins, il est des cas où une application manipule un très grand nombre de chaînes de caractères, et on peut alors, à juste titre, se poser la question. La réponse n'est pas évidente. Tout d'abord, le premier point en faveur des string est que celles-ci connaissent en permanence leur longueur (fonction size() ou length()), qui n'a donc pas besoin d'être calculée, contrairement aux char* ou il faut systématiquement effectuer un appel à strlen(). Ainsi, plus la longueur des chaînes manipulées est importante, et plus string se révèlera performante vis à vis des char*. Désoler si c'est un peu gros. |
||
Mackila
|
# Posté le 04/12/2005 à 19:37:14 | ||
Gorille bourré![]() |
string : plus rapide à programmer et plus sur.
char* : plus rapide à l'execution (DANS 99,99% DES CAS ON S'EN FOUT !!!) mais très complexe et lourd à gérer. Conclusion : utilisez des string TOUT LE TEMPS !!!! Si jamais une fonction demande du const char* en parametre, utilisez string::c_str() ! ![]() |
||
Retour au forum "Langage C" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
170 Zéros connectés |
7 requêtes |
0.0968s (0.0813s)
