交换函数中的 Return 字符数组

Swap and Return Char Array from the Function

我知道有很多问题与我的这个问题相关,但仍然面临问题。我正在使用函数来交换数组意味着当我输入 ABCD 时它应该 return DCBA。代码在下面检查问题出在哪里。有没有办法将第二个空数组作为参考传递? 交换工作正常,但数组 return 不正常。我只想解决这段与[字符数组]相关的代码。不讨论字符串等

#include <iostream>
#include <string.h>
#define MAX 80
using namespace std;
char* reversit(const char a[]){
    int size=strlen(a)-1;
    char b[MAX];
    int i;
    for(i=0; i<strlen(a); i++){
        b[size--] = a[i];
    }
    b[i]='[=11=]';  
    return b;
}
int main(){

    char a[MAX];
    char b[MAX];
    cin.get(a,MAX);
    b=reversit(a);
    cout << b;
    return 0;
}

首先,你确实可以不用return数组。这是他们的一大问题。

如果您真的想要使用char[],您可以将输出数组作为额外参数传递:

void reversit(const char *a, char *b){
    int size=strlen(a)-1;
    int i;
    for(i=0; i<strlen(a); i++){
        b[size--] = a[i];
    }
    b[i]='[=10=]';  
}

请注意 char[]char* 与函数参数相同。