c语言:把字符串中的内容逆置。这程序哪有错?
请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。#incl...
请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:gfedcba。
#include<stdio.h>
#include<string.h>
char fun(char *s)
{
char *ns=0;
int len=0,j,i;
j=strlen(s);
for(i=0;j>=0;j--,i++)
*(ns+i)=*(s+j);
return(*ns);
}
void main()
{
char a[5];
gets(a);
printf("%s\n",fun(a));
} 展开
abcdefg,则调用该函数后,串中的内容为:gfedcba。
#include<stdio.h>
#include<string.h>
char fun(char *s)
{
char *ns=0;
int len=0,j,i;
j=strlen(s);
for(i=0;j>=0;j--,i++)
*(ns+i)=*(s+j);
return(*ns);
}
void main()
{
char a[5];
gets(a);
printf("%s\n",fun(a));
} 展开
4个回答
展开全部
最核心的问题,逆置要有交换算法的应用,你枯山未用。液掘
另外,既然是对换,那有个一半就行闹败核了。
int len=0,j,i;
j=strlen(s);
for(i=0;i<j/2;j++)
{
t=s[i];
s[i]=s[j-i-1];
s[j-i-1]=t;
}
}
强烈建议用数组形式表示,少用指针。
另外,既然是对换,那有个一半就行闹败核了。
int len=0,j,i;
j=strlen(s);
for(i=0;i<j/2;j++)
{
t=s[i];
s[i]=s[j-i-1];
s[j-i-1]=t;
}
}
强烈建议用数组形式表示,少用指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题好几个,基于你的代码进行敏州老了修改如下:迹凳
#include<stdio.h>
#include<string.h>
void fun(char *s)
{
int i,j,t;
j=strlen(s);
for(i=0;j>i;j--,i++){
t= *(s+i);
*(s+i) 桥升= *(s+j-1);
*(s+j-1)= t;
}
}
void main()
{
char a[5];
gets(a);
fun(a);
printf("%s\n",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//问题还真多
第一: *(s+j-1)才是蔽仿指向最后一个字符
第二: 返回的是亮并笑字符串型,就是指针了,函数里面要开辟内存敬含空间
#include<stdio.h>
#include<malloc.h>
#include<string.h>
char* fun(char *s)
{
char *ns;
ns=(char*)malloc(sizeof(char)*20);
int len=0,j,i;
j=strlen(s);
for(i=0;j>=0;j--,i++)
*(ns+i)=*(s+j-1);
*(ns+i-1)='\0';
return ns;
}
void main()
{
char a[10];
gets(a);
printf("%s\n",fun(a));
}
第一: *(s+j-1)才是蔽仿指向最后一个字符
第二: 返回的是亮并笑字符串型,就是指针了,函数里面要开辟内存敬含空间
#include<stdio.h>
#include<malloc.h>
#include<string.h>
char* fun(char *s)
{
char *ns;
ns=(char*)malloc(sizeof(char)*20);
int len=0,j,i;
j=strlen(s);
for(i=0;j>=0;j--,i++)
*(ns+i)=*(s+j-1);
*(ns+i-1)='\0';
return ns;
}
void main()
{
char a[10];
gets(a);
printf("%s\n",fun(a));
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-28
展开全部
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询