当前位置: 代码迷 >> C语言 >> 字符串倒置问题.
  详细解决方案

字符串倒置问题.

热度:187   发布时间:2007-11-24 09:39:32.0
字符串倒置问题.
#include "stdio.h"
#include "string.h"
#define N 5
void fun(char *s)
{
int i;
int t;
int n=strlen(s);
for(i=0;i<=(n-1)/2;i++)
{
  t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t;
}
}
main()
{
char a[N];
int i;
gets(a);
fun(a);
puts(a);
}
//这是我自己写的代码,编译不通过,不知道哪里错了呢?
搜索更多相关的解决方案: 字符  int  倒置  include  void  

----------------解决方案--------------------------------------------------------
兄弟,你多了一个S。以下是我改好的程式,已运行OK。
#include "stdio.h"
#include "string.h"
#define N 5
void fun(char *s)
{
int i;
int t;
int n=strlen(s);
for(i=0;i<=(n-1)/2;i++)
{
  t=*(s+i);*(s+i)=*(s+n-i-1);*(s+n-i-1)=t;
}
}
main()
{
char a[N];
int i;
gets(a);
fun(a);
puts(a);
}
----------------解决方案--------------------------------------------------------
t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t;
你把上面三句改成如下试试:
t=s[i]; s[i]=s[n-i-1]; s[n-i-1]=t;

[ 本帖最后由 静思 于 2007-11-24 10:19 编辑 ]
----------------解决方案--------------------------------------------------------
t=s; s=s[n-i-1]; s[n-i-1]=t;   ?
这个可以么?函数传回不了值了吧?这只是交换的地址,没有交换实参指向的元素吧.而且t=s的话那么循环也起不到作用了.
确实是多了一个s ...哈哈.:)
----------------解决方案--------------------------------------------------------
有一个好的讨论论坛真好!:)
比老师强多了.
----------------解决方案--------------------------------------------------------
老师有老师的作用~论坛有论坛的好处~
----------------解决方案--------------------------------------------------------
同意楼上的!
----------------解决方案--------------------------------------------------------
t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t; 句多了个S
----------------解决方案--------------------------------------------------------
  相关解决方案