c语言:把字符串中的内容逆置。求改错。

/*请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。请勿改... /* 请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:gfedcba。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include <string.h>
#include <stdio.h>
#define N 81

void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='/0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}

}

void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
}
展开
 我来答
sdprtf
2011-12-20
知道答主
回答量:23
采纳率:0%
帮助的人:17.6万
展开全部
#include <string.h>
#include <stdio.h>
#define N 81

void fun ( char *s )
{
int len=0,i,t;
char *p=s,a;
for(;*s!='\0';s++)
len++;
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}

}

void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
fun(a);
printf("\n");
printf("The string after modified: ");
puts(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
O_my_beijing
2011-12-20
知道答主
回答量:13
采纳率:0%
帮助的人:7.6万
展开全部
void fun(char *s)
{
int len=0;
int i,j;
char c;

for(i = 0; s[i] != '\0'; i++);
i--;
for(j = 0; j <= i/2; j++,i--)
{
c = s[j];
s[j]=s[i];
s[i]=c;
}

}

经测试能用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7d16e87
2011-12-20 · TA获得超过281个赞
知道小有建树答主
回答量:383
采纳率:100%
帮助的人:256万
展开全部
void fun ( char* s )
{

int len=0,i,t;
char *p,a;
p=s;

while(*s!='\0')
{ len++;
s++;
}
printf("%d",len);
s=p;
p=s+len-1;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{a=*s;*s=*p;*p=a;}

}

注意一下开始的时候的赋值。然后把for循环改成while比较好,这样就ok啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furuip
2011-12-20 · TA获得超过175个赞
知道答主
回答量:79
采纳率:0%
帮助的人:65.5万
展开全部
#include <string.h>
#include <stdio.h>
#define N 81

void fun ( char *s )
{
int i,t;
int len=strlen(s);
char *p=s+len-1, a;
t=len/2;
for(i=0;i<t;i++,s++,p--)
{ a=*s; *s=*p; *p=a; }
}

void main()
{ char a[N];
printf("Enter a string: ");
gets(a);
printf("\n");
printf("The original string is: ");
puts(a);
fun(a);
printf("The string after modified: ");
puts(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bookable
2011-12-20
知道答主
回答量:30
采纳率:0%
帮助的人:6万
展开全部
void fun ( char *s )
{
int len=0,i;
char a;
for(i=0;*(s+i)!='/0';i++)
len++;
t=len/2;
for(i=0;i<len/2;i++)
{
a=*(s+i);
*(s+i)=*(s+len-i);
*(s+len-i)=a;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式