-1

这是课堂项目的一部分。这不是必需的,但现在我一次分配一个字符,它在我的代码中添加了几十行。我想编写一个函数,该函数将采用字符串文字和指针,并将文字复制到指向的数组中。

它看起来像这样。

char* word = new char[12];
stringCopy(word, "thisisaword");
cout << word;

该程序会将“thisisaword”打印到屏幕上。

因为这是为了上课,所以我能做的很有限。

--我必须准确地动态分配和调整数组大小(通过使用临时的、未调整大小的数组并找到它们的长度来分配精确大小的新数组)

--我不能使用任何字符串库函数,我必须自己写

--我不能使用重载的运算符

到目前为止,我还没有尝试任何方法来实现这一点,因为我不知道如何实现。我已经编写了一个函数,它给出了两个指针,它非常简单,我不需要发布它的代码。strlen 源,删除,然后将正确的数量分配给目标指针,然后在由字符串长度控制的循环中逐个字符地复制。

4

1 回答 1

1

我喜欢这些任务。这是我的解决方案:

#include <iostream>

struct P { char const* s; std::size_t z; };
template <std::size_t z>
P s(char const(&s)[z]) { return { s, z }; }

int main()
{
    auto p(s("thisisaword"));
    char* word = new char[p.z];
    for (auto i(0);  (i<:word:> = i<:p.s:>); ++i) <%%>
    std::cout << word << '\n';
    delete[] word;
}
于 2013-10-01T23:03:14.887 回答