首页 > 解决方案 > 尝试将已经存在的数组的反向存储到另一个数组中时出现 C++ 错误。不能使用指针

问题描述

//Function to store the reverse of original array   
     void ReverseName(char name[], char reverse[]) {
            int i, j = 0;
            for (i = 0; name[i] != '\0'; i++) {} //loop to find size of name
            for (i; i >= 0; i--) {              //loop to go backwards from end of name    
                reverse[j] = name[i];           //should get stored here
                j++;                       //run through array and populate it
            }
        }

似乎代码没有正确复制并且输出为空白。当我放一个'cout'来检查name []时,它检测并反向打印它没有问题,问题是复制到另一个数组中。

标签: c++

解决方案


问题是您使用'\0'in的索引开始第二个循环i,因此反转的字符串将包含'\0'在第一个字符中,因此看起来是空的。

替换这个:

for (i; i >= 0; i--)

和:

while (i--)

第二个循环结束后,终止字符串:

reverse[j] = '\0';

推荐阅读