我知道有很多问题与我的这个问题有关,但仍面临问题。当我输入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;
}
答案 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*
与函数参数相同。