交换函数中的 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*
与函数参数相同。
我知道有很多问题与我的这个问题相关,但仍然面临问题。我正在使用函数来交换数组意味着当我输入 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*
与函数参数相同。