将字符数组追加到字符串 C++

appending character array to string c++

本文关键字:字符串 C++ 追加 字符 数组      更新时间:2023-10-16

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

应该这样做。 如果以 null 终止数组,append也应该有效。

这应该可以完成工作:

int c;
while(myArray[c] != NULL) {
  buffer.append(1,myArray[c]);
  ++c;
}

另外,你应该做这样的事情:myArray[5] = ''