如何在C ++中进行反向字符复制

时间:2015-09-09 19:44:02

标签: c++ copy logic

大家好,所以我的反向复制方法遇到了一些问题。该方法需要反向复制char *。

pageList[pageID]

目的地是存储副本的地方。

来源被复制char

Num是数组中的字符数

任何见解都表示赞赏。感谢

3 个答案:

答案 0 :(得分:2)

使用standard library algorithm是否会作弊?

char* reverseCopy(char* destination, const char* source, int num)
{
    std::reverse_copy(source, source + num, destination);
    destination[num] = '\0';
    return destination;
}

答案 1 :(得分:1)

但是有更简单,更快捷的方法: 例如,为什么需要在循环中将GL_UNSIGNED_INT_24_8复制到source

如果destination怎么办?

这个循环:

destination == source

写错了,即使它是一个正确的书面循环,你也会覆盖for (int i=0; i<num; num--) { placeHolder = destination[num]; destination[i]=placeHolder; } 中未恢复的数据。

我希望这样的事情能够起作用(照顾destination可能的情况):

source == destination

答案 2 :(得分:0)

我可能会按如下方式编写该函数:

char* reverseCopy(char* destination, const char* source, int num) {
    char* d = destination;
    while (num) {
        *d++ = source[--num];
    }
    *d = '\0';
    return destination;
}