2013-09-04 3 views
-2

Eh bien, je vais être bref ici. J'ai cette variable:Comment mettre une chaîne dans une variable char * en C++

char* String;

et une fonction:

void AddString(char str[]) 
{ 

} 

Et je dois ajouter la str à cordes à la fin de celui-ci par exemple: si String = "ABC" et str = "123" après la fonction AddString String = "ABC123" J'ai cherché partout sur le web, mais je n'ai pas trouvé ce dont j'avais besoin, aucune aide?

Répondre

1

utilisation strcat combiner les deux char *

strcat prend deux paramètres, le tableau char destination c1 et la matrice source de caractère c2. Vous devez vous assurer que c1 est assez grand pour contenir tous les caractères de c1 et c2.

Toutefois, vous pouvez utiliser des chaînes C++. et l'opérateur + va gérer cela pour vous.

string s1, s2; 
string s3 = s1+s2 
4

En C++, utilisez std::string plutôt que des tableaux de caractères de style C:

#include <string> 

std::string String; 
void AddString(std::string str) { 
    String += str; 
} 

Si vous voulez vraiment faire par la vapeur, alors vous aurez besoin d'allouer un tableau assez grand pour la résultat, copiez les chaînes, et n'oubliez pas de mettre un terminateur (caractère à valeur nulle) après la fin. Des fonctions de bibliothèque C telles que strlen, strcpy et strcat pourraient être utiles. Les détails sont laissés comme un exercice, puisque la question concerne C++ et non C.

3

Pour utiliser des chaînes C, vous avez des fonctions dans le fichier d'en-tête cstring. Pour concaténer des chaînes que vous avez strcat

0
char* String; 

void AddString(char str[]) 
{ 
    strcat(String , str); 
} 

/*Also, make sure you have allocated space for String before using AddString*/ 
String = malloc(25*sizeof(char)); //25 just an example. 

De plus, étant donné que cela est marqué pour

C++ Vous devez utiliser std::string au lieu comme indiqué dans d'autres réponses

Questions connexes