在线求助,这个c语言程序错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:09:16
#include<stdio.h>
#include<string.h>
void string_change(char str[])
{int n,i;
char u;
i=strlen(str);
for(n=0;n<i/2;n++)
u=str[n],str[n]=str[i-n],str[i-n]=u;
str[i+1]='\0';}
void main()
{char a[5];
gets(a);
puts(a);
string_change(a);
puts(a);}

题目是编写一个函数string_change(char str[]),要求实现str中的字符呼唤。如“abcde"--"edcba"

有语言的高手请帮帮忙 谢谢了
那那个*代表什么呢?为什么不能用[]? 能详细说一下吗? 谢谢

#include<stdio.h>
#include<string.h>
void string_change(char* str)
{int n,i;
char u;
i=strlen(str);
for(n=0;n<i/2;n++)
u=str[n],str[n]=str[i-n-1],str[i-n-1]=u;
str[i]='\0';}
void main()
{char a[5];
gets(a);
puts(a);
string_change(a);
puts(a);}
//这样就可以了

for(n=0;n<i/2;n++)
u=str[n],str[n]=str[i-n],str[i-n]=u;
str[i+1]='\0';
改为
for(n=0;n<i/2;n++)
{u=str[n],str[n]=str[i-n],str[i-n]=u; }
str[i+1]='\0';
你看看不行了再联系呵呵