#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* Reverse(char s[],int n)
{
char s2[]="";
for (int i=n-1;i>=0;i--)
{
s2[n-1-i]=s[i];
}
return s2;
}
int main()
{
char input[100];
scanf("%s",input);
char s[10];
strcpy(s,Reverse(input,strlen(input)));
printf("%s",s);
}
为什么我的reverse char array没输出
char s2[]="";不对,这个数组太小了,而且函数内的局部变量作为返回值也不可以。
一是用动态分配空间
char *s2 = (char *)malloc(n);
这样返回s2可以。
而是将s2也作为参数传递,由调用函数分配空间
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Reverse(char s[],char s2[],int n)
{
for (int i=n-1;i>=0;i--)
{
s2[n-1-i]=s[i];
}
}
int main()
{
char input[100];
char output[100] = {0};
scanf("%s",input);
Reverse(input,output,strlen(input)));
printf("%s",output);
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!