char* + char* = concaténer [débutant] - C++ - Programmation
Marsh Posté le 24-02-2006 à 00:43:46
il y a un type string en c++
Code :
|
Marsh Posté le 24-02-2006 à 00:48:11
je ne peux malheureusement pas m'offrir ce luxe. M. le professeur ne le souhaite pas.
Marsh Posté le 24-02-2006 à 00:50:46
ben spas du c++ que vous faites alors c'est du C...ou ptet pour la notion de pointeur
Marsh Posté le 24-02-2006 à 01:08:16
J'avou être un peu mélangé dans tout ça....
Tout ce que je peux dire c'est que je suis au prise avec ce problème. Actuellement, je travail sur un programme éducatif plutôt merdique et je suis à cours de temps. Présentement, j'ai tout concu mon programme de cette façon parce la base aprise en classe était conçu de cette façon. Comme je suis habitué au c#, VB, ASP, etc.... Mes notion de C sont très limité.
actuellement j'ai des problème avec les char et les tableau et je ne peux pas vraiment changer de façon de faire...
Voilà mon histoire...
Marsh Posté le 24-02-2006 à 01:16:37
euh....ca repond pas a ma question
oua alors y'a quelquechose que tu comprends pas dans cette fonction?
En fait le truc c'est que tes deux chaines sont representées par deux tableaux (en gros).
Pour les concatener, il va falloir creer une chaine de longueur chaine1 + chaine2 , puis copier ces deux chaines dans celle créée.
je t'invite a jeter un coup d'oeil sur ce topic, ca correspond a ce que tu veux faire
bonne nuit
Marsh Posté le 24-02-2006 à 01:28:06
ouais ça me semble assez clair.
Pardon, ça m'a fait du bien de faire pitier un peu.
Merci !
Marsh Posté le 02-03-2006 à 21:03:29
le problème avec le char c'est comme gocho l'a dit : tes caractères sont mis dans des tableaux de taille fixes donc additionner les 2 comme ça c problématique; problème de longueur...
la classe string résoud directement ce problème (tu dois plus t'en soucier quand tu additionnes les 2 chaines^^)
Marsh Posté le 02-03-2006 à 23:03:50
Code :
|
et voila
Marsh Posté le 02-03-2006 à 23:34:20
c'est pas terrible, dans les 2 cas il y a risque d'overflow (surtout que buffer est alloué sur la pile donc risque d'attaque de type 'buffer overflow')
en c standard on peut faire mieux,
strncpy et mettre explicitrement à 0 la valeur du dernier element du tableau (mais la chaine copiée peut etre tronquée, on peu ajouter un test)
strncat et s'assurer au prealable que la chaine à ajouter ne sera pas tronquée
sinon on arrete la les conneries et on utilise std::string
Marsh Posté le 03-03-2006 à 00:21:41
bah d'un autre cote son prof a dit quil ne pouvaient pa utiliser ca
Marsh Posté le 05-03-2006 à 18:11:53
lol...oué je comprends pquoi pas les autres insistent avec le string si son prof veut pas
Citation : je ne peux malheureusement pas m'offrir ce luxe. M. le professeur ne le souhaite pas |
Marsh Posté le 05-03-2006 à 18:15:23
Oui ... Mais la ça ressemble un peu a du :
Apprendre C++
Chapitre 1 : Ecrire un programme avec du asm inline
.. Faut pas pousser non-plus
Marsh Posté le 05-03-2006 à 18:22:05
asprintf
Marsh Posté le 07-03-2006 à 11:34:42
Le prof veut sans doute faire comprendre le mecanisme d'adresse:
partant du principe que valeur est crrectement alloué:
Code :
|
Marsh Posté le 07-03-2006 à 11:52:53
pourquoi 0x20 au lieu de la constante ' ' ? c'est moche et pas portable (en ebcdic l'espace c'est 0x40)
Marsh Posté le 07-03-2006 à 18:01:00
Hehe, le pauvre, tu vas lui griller plus d'un neurone comme ca ...
mougwai a écrit :
|
Sinon, peut etre qu'un truc comme :
Code :
|
Marsh Posté le 08-03-2006 à 01:12:47
Tu compte faire quoi avec des char* sans malloc ?
Marsh Posté le 08-03-2006 à 01:45:23
nan mais attention, ca doit etre du C++ a deux balles la tranche, genre on remplace "malloc" par "new" et vlan, voila le code objet d'elite
Marsh Posté le 24-02-2006 à 00:37:27
Bonjour,
je suis au prise avec un problème de concaténation en C++. J'ai 2 variable soit nom et prenom. Tous deux sont des char
je voudrais savoir comment concaténer les deux en un seul char* je sais que ce n'est pas aussi simple que
merci !