我正在阅读 Bjarne Stroustrup 撰写的The C++ Programming Language第 3 版并尝试完成所有练习。我不确定如何处理第 6.6 节中的练习 13,所以我想我会转向 Stack Overflow 以获得一些见解。这是问题的描述:
编写一个函数cat(),它接受两个 C 风格的字符串参数并返回一个字符串,该字符串是参数的串联。使用new查找结果的存储。
到目前为止,这是我的代码,在我不确定该怎么做的地方带有问号:
? cat(char first[], char second[])
{
char current = '';
int i = 0;
while (current != '\0')
{
current = first[i];
// somehow append current to whatever will eventually be returned
i++;
}
current = '';
i = 0;
while (current != '\0')
{
current = second[i];
// somehow append current to whatever will eventually be returned
i++;
}
return ?
}
int main(int argc, char* argv[])
{
char first[] = "Hello, ";
char second[] = "World!";
? = cat(first, second);
return 0;
}
这是我的问题:
- 如何使用new查找商店?我是否应该做类似的事情,
std::string* result = new std::string;
或者我应该使用new以某种方式创建另一个 C 风格的字符串? - 与上一个问题相关,我应该从 cat() 返回什么?如果我必须使用new,我认为它需要是一个指针。但是指向什么的指针?
- 虽然问题没有提到使用delete来释放内存,但我知道我应该这样做,因为我将使用new来分配。我应该在返回之前在 main 的末尾删除吗?