Fussionner deux variables...

Signaler
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
-
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
-
Question stupide je c mais comment on fait pour fussionner 2 variable de texte ou ajouter quelque chose a la fin de celle ci .

ca fait une heure que je cherche et je trouve pas ..
merci...

17 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
salut,
la fonction strcat(char * chaine1, char * chaine2) copie la chaine2 a la fin de la chaine1.

Bien evidement, il faut que les 2 chaines soit terminées par un caractere '\0' (NULL).
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

ok ..... mais ya pas une otre methode ... en vb on fesais

resultat = unevar&lotrevar&"du texte si on veux"
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
Si tu as que 2 chaines, strcat est parfait.
Tu as aussi sprintf qui fonctionne comme printf, faut que la 1er argument est un char * qui contient ta chaine de caractere finale. L'avantage de sprintf c'est que tu peux mettre du texte perso, des chaines de carateres, des entiers, en 1 seule ligne.
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Tu peux utiliser l'opérateur + mais seulement si tes chaines de caractères sont des objets (style std::string) et non des tableaux de caractères. En C++ seulement évidemment ...

Kaid - kaid.fr.st
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

Ok merci ...
@+ Arkko
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

j'essai de faire un strcat mais il me fait un access violation a chaque fois !!!
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Enfin il faut qu'il y a de la place dans la chaine de destination.

char[] strUn="Test 1";
char[] strDeux="Test 2";

// Ce que tu fais certainement, ce qui est faux:
strcat(strUn, strDeux);

// Ce qu'il faut faire:
char[] strFinale=new char [strlen(strUn) + strlen(strDeux) + 1];
strcpy(strFinale, strUn);
strcat(strFinale, strDeux);


Kaid - kaid.fr.st
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

moi je faisait ...

CHAR* texte = "Yo les jeunes";
strcat(texte,"\n");
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Ca fait un caractère de trop pour le buffer, ca explose logiquement.

Kaid - kaid.fr.st
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

Lol merci . ..!!!! il faudrais un string comme vb :)
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Mets toi au C++ alors, c'est possible avec les objets.

Kaid - kaid.fr.st
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

lol je croyais que je fais du cpp lol ..
peux tu m'expliquer cmt faire ... lol je c je suis fatiquant mais je debute lol !
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Si tu ne maitrises pas encore les chaines en c, c'est peut-être sauter les étapes, mais bon.

#include 
#include <string>

void testString()
{
std::string strTest="test 1":
std::string strConcat=strTest + "test 2";

cout << strConcat.c_str();
}



Kaid - kaid.fr.st
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

MERCI TOUT FONCTIONNE lol ...
Messages postés
258
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
16 août 2004

Cependant, je te conseille de bien comprendre Le fonctionnement et la manipulation des chaines de caracteres c (tableau de char) plutot que les string(mm si bcp plus simple).
Bye,Xentor609
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

Ok mais avec un new char[ ...] j'imagine qui faut faire delete quand on a pu besoin de la chaine fussionner ?
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Oui.

Kaid - kaid.fr.st