Création
d'entreprise
Posez votre question Signaler

Concatenation de chaines en c++

juni 79Messages postés 3 janvier 2004Date d'inscription - Dernière réponse le 15 oct. 2007 à 14:18
Salut

je cherche à faire ce squi est marqué dans le tire du message.
La réponse est surement déjà sur le forum, mais le moteur de recherche est HS au moment où j'ecris.

Donc si une âme généreuse voulait bien me répondre ça serait sympa
Lire la suite 

Concatenation de chaines en c++ »

6 réponses
Réponse
+2
moins plus
Bonjour,
Pour concaténer deux objets de types String en, C++, tu peuxutiliser l'opérateur + qui est surdéfini ;).
Sinon en C, tu as :
char* strcat(char* str1, char* str2);
A+
Ajouter un commentaire
Réponse
+1
moins plus
salut juni !

tu peux essayer ça:
strcat(chaine1,chaine2);

je ne suis pas sur que ça marche: j'ai utilisé cette fonction dans un prog en c sous unix
Ajouter un commentaire
Réponse
+1
moins plus
#include <srtring.h>

void main()
{
char string1[64] = {"Hello. "};
char string2[64] = {"C'est moi. "};

strcat(string1,string2);

printf("%s\n",string1);
}

Au passage, "strcmp" compare deux chaine, mais ne les concatene pas.
Ajouter un commentaire
Réponse
+0
moins plus
merci du coup de main mais apparemment ça marche pas

j'ai essayé d'afficher directement deux chaines concaténees ou de d'abord les insere dans une variable, et dans les deux cas ça plante.

Je travaille sous win XP mais je pense pas que ça ait un rapport.

La llibrairie où se trouve cette fonction, c'est bien string.h ??
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon j'ai trouvé un moyen simple de le faire en c++ (et peut-être aussi en C)

pour concatener 2 chaines a et b :

#include <string.h>

strcmp(a+strlen(a),b);

a+strlen(a) place le pointeur au caractère de fin de chaine de a, et insere b à cet endroit.
il faut juste faire attention à ce que a contienne suffisamment de caractère vide pour inserer b.
Ajouter un commentaire
Réponse
+0
moins plus
j'ai vu ça quelque part sur ce forum :

#include <string.h> // pour strcat
#include <stdlib.h> // pour realloc

// dans le cas où s1 est un pointeur, il faut le redimensionner

s1 = realloc(s1,strlen(s1)+strlen(s2)+1);
strcat(s1,s2);



sinon tu peux utiliser ta méthode et faire un realloc pour qu'il n'y ait plus de pb.
Ajouter un commentaire
Ce document intitulé « concatenation de chaines en c++ » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?