256 文字の文字配列があるかchar myArray[256]
、最初のカップルだけが実際に情報を保持しています
myArray[0] = 'H';
myArray[1] = 'E';
myArray[2] = 'L';
myArray[3] = 'L';
myArray[4] = 'O';
myArray[5] = NULL;
myArray[6] = NULL;
// etc...
配列の内容を必ずしも正確に把握しているわけではありませんが、そこにあるものからヌル文字を除いたものをバッファ文字列にコピーしたいと考えています。string buffer
これを行う適切な方法は、次のようにすることだと思いました。
buffer.append(myArray);
プログラムは、ヌル文字に遭遇すると値の読み取りを停止しますが、その動作は見られません。配列全体がバッファ、null 文字、およびすべてにコピーされていることがわかります。これを行う正しい方法は何ですか?
編集:簡単にするためのいくつかの作業コード
#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;
}
null を適切に初期化していないことに気付き、元の方法で動作します。ヤルの時間を無駄にしてごめんなさい。