有人可以帮我使此代码正常工作吗? 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;
}
对于初学者,此函数声明
char[] Reverse(char ch[]);
不正确。函数可能没有数组返回类型。
在正常情况下,您只需使用std::reverse
即可完成。您还将使用C ++容器,对于可变长度数组,您将使用std::reverse
,在这种特殊情况下,假设它是std::vector
数组,那么您将使用std::vector
。
关于您的代码,要使其正常工作,您需要将char
替换为std::string
,然后问题就变成std::string
,解决方案是将第二个char arr[sizeof(ch)];
数组作为参数传递或使用内存分配。