Mam tablicę znaków 256 znaków lub char myArray[256]
tylko pierwsza para rzeczywiście posiadają żadnych informacjidołączanie tablica znaków na ciąg C++
myArray[0] = 'H';
myArray[1] = 'E';
myArray[2] = 'L';
myArray[3] = 'L';
myArray[4] = 'O';
myArray[5] = NULL;
myArray[6] = NULL;
// etc...
I niekoniecznie będą dokładnie wiedzieć, co jest w tablicy, ale chcę skopiować to, co jest tam, minus zerowej znaków, do mojego ciąg bufora string buffer
Myślałem odpowiedni sposób to zrobić będzie w następujący sposób:
buffer.append(myArray);
Program przestanie czytać wartości po napotkaniu znaku nul, ale nie widzę takiego zachowania. Widzę, że kopiuje on całą tablicę do mojego bufora, znaki puste i wszystkie. Jaki byłby właściwy sposób, aby to zrobić?
Edycja: Niektóre programy pracy, aby ułatwić
#include <string>
#include <iostream>
using namespace std;
int main()
{
string buffer;
char mychararray[256] = {NULL};
mychararray[0] = 'H';
mychararray[1] = 'e';
mychararray[2] = 'l';
mychararray[3] = 'l';
mychararray[4] = 'o';
buffer.append(mychararray);
cout << buffer << endl;
return 0;
}
Wystarczy sobie sprawę, że nie było inicjowanie NULL prawidłowo i mój oryginalny sposób działa. Przepraszam za stratę czasu Yall'a.
Twój "działający kod" jest zupełnie inny. Brakuje części '= NULL'. Który to jest? –
@LuchianGrigore, czy wszystkie wartości 'mychararray' po indeksie 4 nie będą domyślnie ustawione na" NULL "(to jest faktyczne pytanie, jestem dość niedoświadczony w C++)? –
@usernametbd nie - jeśli chcesz, aby miały one wartość 0, ustaw je samodzielnie na wartość jawnie lub po prostu wykonaj: char mychararray [256] = {0}; –