web-dev-qa-db-fra.com

Concaténer des tableaux de caractères en C++

J'ai le code suivant et voudrais me retrouver avec un caractère tel que: "Bonjour, comment vas-tu?" (ceci est juste un exemple de ce que j'essaie de réaliser)

Comment concaténer les tableaux de 2 caractères en ajoutant les "," au milieu et le "vous?" à la fin?

Jusqu’à présent, cela concatène les 2 tableaux mais je ne sais pas comment ajouter les caractères supplémentaires à ma dernière variable de caractère que je veux trouver.

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char foo[] = { "hello" };
    char test[] = { "how are" };
    strncat_s(foo, test, 12);
    cout << foo;
    return 0;
}

MODIFIER:

C’est ce que j’ai trouvé après toutes vos réponses. J'aimerais savoir si c'est la meilleure approche?

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char foo[] = { "hola" };
    char test[] = { "test" };
    string foos, tests;
    foos = string(foo);
    tests = string(test);
    string concat = foos + "  " + tests;
    cout << concat;
    return 0;
}
6
Matimont

En C++, utilisez std::string et le operator+, il est spécialement conçu pour résoudre des problèmes comme celui-ci.

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string foo( "hello" );
    string test( "how are" );
    cout << foo + " , " + test;
    return 0;
}
12
quantdev

La meilleure chose à faire est d'utiliser std::string en C++ comme autre réponse. Si vous avez vraiment besoin de travailler avec des chars, essayez de cette façon. n'a pas testé.

const char* foo = "hello";
const char* test= "how are";

char* full_text;
full_text= malloc(strlen(foo)+strlen(test)+1); 
strcpy(full_text, foo ); 
strcat(full_text, test);
2
Nayana Adassuriya