从函数中交换和返回Char数组

时间:2015-05-31 12:32:44

标签: c++ arrays reference char swap

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

#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]='\0';  
    return b;
}
int main(){

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

1 个答案:

答案 0 :(得分:3)

首先,您确实无法返回数组。这对他们来说是个大问题。

如果确实想要使用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]='\0';  
}

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