Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[c++][débutant]Char,string?

albert, le mardi 29 avril 2003 à 10:10:38
Bonjour à tous
Je lit au chapitre "c++,types de données" de CCM:
"il n'existe pas de type de données pour les chaînes de caracteres...
pour créer une chaîne on utilsera donc des tableaux."

puis je tombe sur un bout de code dans un livre(sérieux:CampusPress)
string prenom/*le prenom est stocké dans une variable de type string*/

En tant que débutant me voilà en peu perturbé.
Merci d'avance
Répondre à albert  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pouet, le mardi 29 avril 2003 à 13:39:34
tu as mal quote! il y a ecrit:
"Il n'existe pas de type de données pour les chaînes de caractères (suite de caractère) en langage C. Pour créer une chaîne de caractère on utilisera donc des tableaux contenant dans chacune de ses cases un caractère..."

effectivememnt je ne vois pas pourquoi l auteur parle du C dans un tutoriel C++, mais pour repondre a ta question. il n existe pas de type string, par contre il existe un objet std::string.
en C++, une chaine est stockee dans un tableau de caracteres (char), mais l objet string offre d autres possibilites.
bref pour l utiliser, appelle le constructeur
std::string(char *)
je te renvoie a la STL
Répondre à pouet

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
batmat, le mardi 29 avril 2003 à 15:08:49
Pour info la stl signifie Standard Template Library, Les templates sont des modèles de classes...

Si tu commence le C++, reviens quand même aux templates un peu + tard Albert ;-)

@++
ps : le site de la STL : http://www.sgi.com/tech/stl/

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
Répondre à batmat

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
albert, le mardi 29 avril 2003 à 15:57:14
Merci à vous deux
De toute façon tout ça est en anglais,c'est à dire en chinois pour moi.
j'en profite néanmoins pour poser une question tout aussi basique.

vu que les chaînes sont stockées dans un tableau de caracteres.
Si je veux faire un tableau avec:
DUPONT
DURAND
DUBOIS
Il faut déclarer un tableau multidimentionel.
char tableau [3][1]
Me trompe-je?
sinon merci encore et A plus,Albert
Répondre à albert

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pouet, le mardi 29 avril 2003 à 17:50:05
de rien,

par contre pour la doc, tu as interet a te mettre a l anglais.
et bien cela depend.
en fait c est un probleme d allocation de memoire.
tu vas devoir stocker des char. et ensuite tu vas stocker trois mots de 6 lettres donc:
char prenoms[3][6]; /* no comment please */
il s agit d une allocation statique, la memoire est reservee jusqu en fin de fonction.
par contre tu peux faire appel aux pointeurs:
char **prenomS;
char *prenom;
unsigned int i, j;

/* tu alloues de la memoire pour stocker trois chaines de caracteres */
prenomS = malloc(sizeof(char *) * 3);
for (i = 0; i < 3; i++)
{
/* tu alloues de la memoire pour le ieme prenom */
prenomS[i] = malloc(sizeof(char) * 6)); /* no comment please */
}

c est plus lourd a la declaration, mais c est mieux car tu peux liberer la memoire en cours de route.
voila.

cela dit ce sont des notions de base et tu devrais les lire toi meme (dans le K&R)
Répondre à pouet

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
batmat, le mardi 29 avril 2003 à 17:26:18
Une lettre = 1 octet = 1 caractère...
donc c'est presque ça mais pas tout à fait.

Pour stocker tes trois noms tu as deux possibilités :
1) tu fais un truc pour toi (pas pro donc) et tu te fous des bugs possibles : tu fixes une taille maxi pour un nom. =>
-Tu as ici besoin de 8 caractères pour le plus grand nom.
-en C, une chaine est terminée par un '\0' donc un caractère de +pour ta chaine
- tu as 3 lignes

=> tu déclares char tontableau[8+1][3]

2) En dynamique : tu déclares char* tableau[3] et tu joues avec l'allocation dynamique (malloc) pour saisir la bonne taille de chaque nom.

Mon conseil : si tu es débutant, commence par 1) et seulement quand tu es sûr de maitriser, passe à 2).

3 (en fait) ) Le plus simple, mais tu ne sauras pas ce qui se passe, et c'est bien de ne pas connaître les bases...
tu écris #include <string> en haut de ton source

et dans le source tu peux déclarer string tachaine;

et écrire ensuite tachaine="monsieur";

Sache en fait que la classe string fait les malloc et realloc pour toi, c'est donc ni plus ni moins qu'une interface qui te simpilifie la vie avec les chaines de caractères...

@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
Répondre à batmat

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 albert, le mardi 29 avril 2003 à 19:06:09
je m'en vais donc tripoter tout ça,et je vous redonnerai de mes nouvelles.
Encore merci et à plus,Albert
Répondre à albert

Résultats pour [c++][débutant]Char,string?

[C/C++] Cast d'un string vers un char * (Résolu) Salut à tous, Question très simple je veux caster un std::string vers un char *, mais comment faire ? Il y a bien string.c_str() qui me le cast en const char *, mais il me faut absolument un char *. Voilà :) www.commentcamarche.net/forum/affich-1559459-c-c-cast-d-un-string-vers-un-char
[C] cast int => char[] (Résolu) Quelqu'un saurait-il comment transtyper un entier en une chaine de charactère ? Disons que j'ai : int var1 = 456; y'a-t'il une façon de transformer ça en une chaine de charactère qui contienne 456 ? Je sais pas si c'est très... www.commentcamarche.net/forum/affich-1213050-c-cast-int-char
Cahier des charges Intérêt d'un cahier des charges Un « cahier des charges » est un document contractuel décrivant ce qui est attendu du maître d'œuvre par le maître d'ouvrage. Il s'agit donc d'un document décrivant de la façon la plus précise possible, avec un... www.commentcamarche.net/contents/projet/cahier-des-charges.php3

Résultats pour [c++][débutant]Char,string?

Le cahier des charges d'un site WebLe cahier des charges Faire le cahier des charges de son site d'entreprise Le cahier des charges d'un site Internet définit les spécifications du service à réaliser. Ce document conçu par l'entreprise permet ensuite de sélectionner un prestataire... www.commentcamarche.net/faq/sujet-9660-le-cahier-des-charges-d-un-site-web
Capturer une vidéo en streamingNOTE AUX CONTRIBUTEURS : voir http://www.commentcamarche.net/faq/sujet 12060 enregistrer une video en streaming youtube google video etc De plus en plus de sites diffusent du contenu vidéo en streaming, c'est-à-dire en diffusion à la demande.... www.commentcamarche.net/faq/sujet-5247-capturer-une-video-en-streaming
Enregistrer une vidéo en streaming (Youtube, Dailymotion...)De plus en plus de sites diffusent du contenu vidéo en streaming, c'est-à-dire en diffusion à la demande. Ainsi, il est nécessaire d'être connecté pour pouvoir en lire le contenu, voire de se connecter à partir de la page diffusant le contenu... www.commentcamarche.net/faq/sujet-12060-enregistrer-une-video-en-streaming-youtube-dailymotion

Résultats pour [c++][débutant]Char,string?

Courant de charge usb insuffisant (Résolu)Bonjour, j'ai un portable hp dv 9500. je viens d'acheter un blackburry quand je branche le blackburry sur l'ordi, un message apparait sur le premier en indiquant "le courant de charge usb n'est pas suffisant. vérifier que le... www.commentcamarche.net/forum/affich-3810264-courant-de-charge-usb-insuffisant
Cahier de charge (Résolu)Bonjour, je dois établir un cahier de charge pour un projet de développement d'un logiciel de gestion immobilière, comment faire je n'ai pas d'idée de comment ça doit être les cahiers de charges ? www.commentcamarche.net/forum/affich-7109523-cahier-de-charge
[C++] conversion char** en std:string* (Résolu)Bonjour, je cherche a transformer un char** en std::string*. Par exemple: int main(int argc, char** argv) { std::string* argv_; argv_ www.commentcamarche.net/forum/affich-4515781-c-conversion-char-en-std-string

Résultats pour [c++][débutant]Char,string?

Javascript - L'objet StringLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation... www.commentcamarche.net/contents/javascript/jsstring.php3
Langage C - Les listes chaînéesLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée... www.commentcamarche.net/contents/c/cliste.php3
Analyste programmeurAnalyste-programmeur L'analysteest au développeur, ce que la conception est à la programmation. Il s'agit en effet d'un métier de conception consistant à traduire fonctionnellement le besoin d'un client, c'est-à-dire à rédiger le cahier des charges... www.commentcamarche.net/contents/metiers-informatique/analyste.php3