我有一个由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);

并且程序在遇到nul字符后将停止读取值,但是我没有看到这种行为。我看到它会将整个数组复制到缓冲区,空字符和所有缓冲区中。正确的方法是什么?

编辑:一些工作代码使其更容易
#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,所以我的原始方式起作用了。抱歉浪费您的时间。

最佳答案

尝试一下

buffer += myArray;

应该做。如果对数组进行空终止,则append也应该起作用。

10-07 13:13
查看更多