发送到函数时,char数组/字符串为空

时间:2015-10-14 09:26:01

标签: c++ string char

我有一个函数,目前没有做任何事情,因为我作为参数发送的char数组没有值。我可以在函数之前写出数据并获得预期的输出,但是如果我在函数中写出来,即使这是我做的第一件事也没有任何结果。

我首先写出字符串,然后将其转换为char数组。我还尝试使用普通字符串作为参数,结果相同。

/*
_Py_NoneStruct is an object of undefined type which can be used in contexts
where NULL (nil) is not suitable (since NULL often means 'error').

Don't forget to apply Py_INCREF() when returning this value!!!
*/
PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */
#define Py_None (&_Py_NoneStruct)

第一个cout的输出是:“0 /”

以下功能的输出无效。控制台中没有显示任何内容。

std::cout << block;
block = this->removeNullCharacters(block.c_str());

1 个答案:

答案 0 :(得分:0)

根本不清楚你想要达到的目标,换句话说,你的问题是不完整的。

input是指向char的指针,指向大小为512的array char的第一个元素。

out是一个空字符串,在函数末尾返回。

block是精神分裂症,我猜是同时指向charstd::string的指针。你需要真的解决这个问题。

试试这个。我想你想将一个char s序列的指针传递给函数,并将每个char连接到string,直到序列结束(由{{1}终止}})。完全忘掉大小,简单地使用null终止作为循环条件。

\0

但是你必须确保传入一个std::string FileSystem::removeNullCharacters(const char * input){ std::string out = ""; for(int i = 0; input[i] != '\0'; ++i){ std::cout << i << ": " << input[i]; out += input[i]; } return out; } 数组或一个指向char的有效指针(这是一个char序列的开头,最后一个元素是char)。