我有一个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);
程序应该在遇到空字符时停止读取值,但我没有看到这种行为。我看到它将整个数组复制到我的缓冲区中,包括空字符等所有内容。正确的做法是什么?
编辑:提供一些可行的代码以使事情更容易
#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
部分。哪一个是正确的? - Luchian Grigoremychararray
所有值默认都不是NULL
吗?(这是一个实际问题,我对C++相当不熟悉)? - username tbd