Ajouter à la fin d'un tableau de Char en C++
Est-il une commande qui peut ajouter un tableau de char sur un autre? Quelque chose qui serait théoriquement fonctionne comme ceci:
//array1 has already been set to "The dog jumps "
//array2 has already been set to "over the log"
append(array2,array1);
cout << array1;
//would output "The dog jumps over the log";
C'est une question assez facile de la fonction de faire, je pense, je suis juste surpris de voir qu'il n'est pas intégré dans la commande.
*Modifier
Je devrais avoir été plus clair, je ne voulais pas dire la modification de la taille de la matrice. Si matrice1 a été fixé à 50 caractères, mais seulement à l'aide de 10 d'entre eux, vous auriez encore 40 caractères pour travailler avec. Je pensais à une commande automatique qui serait essentiellement le faire:
//assuming array1 has 10 characters but was declared with 25 and array2 has 5 characters
int i=10;
int z=0;
do{
array1[i] = array2[z];
++i;
++z;
}while(array[z] != '//assuming array1 has 10 characters but was declared with 25 and array2 has 5 characters
int i=10;
int z=0;
do{
array1[i] = array2[z];
++i;
++z;
}while(array[z] != '\0');
');
Je suis assez sûr que la syntaxe de travail, ou quelque chose de similaire.
OriginalL'auteur Taylor Huston | 2012-03-31
Vous devez vous connecter pour publier un commentaire.
Si vous n'êtes pas autorisé à utiliser C++de la classe string (qui est terrible d'enseignement C++ à mon humble avis), une matière première, un coffre-fort array version ressemblerait à quelque chose comme ça.
Ce qui vous assure d'avoir suffisamment d'espace dans le tableau que vous faites de la concaténation, sans en supposant que certains prédéfinis
MAX_SIZE
. La seule exigence est que vos chaînes sont null, ce qui est généralement le cas, sauf si vous êtes en train de faire un peu bizarre de taille fixe chaîne de piratage.Modifier, d'un coffre-fort version avec le "assez d'espace tampon" hypothèse:
la question initiale a déclaré que deux des tableaux de char a dû être ajoutée. Il n'y a aucune exigence claire de la matrice de les réutiliser. Même avec cette exigence, c'est un bon réponse, parce que la "fixe taille de la mémoire tampon" n'est tout simplement pas faite en C++ (en réalité crue des tableaux en général). J'ai ajouté un plus sûr de la version avec les exigences.
Ok, vous avez édité votre réponse. mais la question de départ était: "Est-il une commande qui peut ajouter un tableau de char sur un autre?"
OriginalL'auteur KillianDS
Si vos tableaux sont des tableaux de caractères(ce qui semble être le cas), Vous avez besoin d'un strcat().
Votre tableau de destination doit avoir assez d'espace pour accueillir la annexé données.
En C++, Vous êtes beaucoup mieux d'utiliser std::string et puis vous pouvez utiliser std::string::append()
strcat()
ou strncat() est ce que vous devriez utiliser dans ce cas.Consultez le lien pour les détails d'utilisation.OriginalL'auteur Alok Save
Il n'y a pas de commande intégrée pour cela que parce que c'est illégal. Vous ne pouvez pas modifier la taille d'un tableau une fois déclarée.
Ce que vous cherchez est soit
std::vector
pour simuler un tableau dynamique, ou mieux encore, unestd::string
.Un tableau de type sans taille est incomplète, mais il est encore un type. Toutefois, dans ce cas, vous pouvez modifier la taille de l'déclaré une fois 😀 . Semble assez clair que Luchian est de dire: bien défini l'objet array est immuable la taille.
Vous avez raison, j'ai oublié que vous en fait, déclarer un type incomplète avec extern, comme dans
extern int a[];
. Bon point. (Mais vous ne pouvez pas modifier de la taille, seulement spécifiez. Qui est, vous pouvez simplement différer la prise de décision.)OriginalL'auteur Luchian Grigore
Vous devriez avoir suffisamment d'espace pour
array1
tableau et utiliser quelque chose commestrcat
contacterarray1
àarray2
:OriginalL'auteur deepmax