C ++函数返回反向字符数组

问题描述 投票:0回答:2

有人可以帮我使此代码正常工作吗? Reverse方法是采用一个char数组参数,并返回一个反向数组。然后我要在main中打印出来

#include <iostream>
#include <iomanip>
using namespace std;

char[] Reverse(char ch[]) {
    char arr[sizeof(ch)];

    for (int i=0; i< sizeof(ch); i++){
        arr[i] = ch[sizeof(ch) -i -1];
    }

    return arr;
}

int main() {
    char ch1[] = {'a', 'b', 'c'};
    char ch2[] = Reverse(ch1);


    cout << ch2[0] << endl;
    return 0;
}
c++ arrays char reverse function-definition
2个回答
0
投票

对于初学者,此函数声明

char[] Reverse(char ch[]);

不正确。函数可能没有数组返回类型。


0
投票

在正常情况下,您只需使用std::reverse即可完成。您还将使用C ++容器,对于可变长度数组,您将使用std::reverse,在这种特殊情况下,假设它是std::vector数组,那么您将使用std::vector

关于您的代码,要使其正常工作,您需要将char替换为std::string,然后问题就变成std::string,解决方案是将第二个char arr[sizeof(ch)];数组作为参数传递或使用内存分配。

© www.soinside.com 2019 - 2024. All rights reserved.