函数问题``字符串逆序存放输出

linruixin01 2009-05-13 10:37:37
#include<stdio.h>
#include<string.h>
#define N 100
main()
{
char fanxu(char zifu[]);
char a[N];
char d;
printf("请输入一个字符串:\n");
scanf("%s",a);
d=fanxu(a);
printf("反序%s:\n",d);
getch();
}

char fanxu(char zifu[])
{
char t;
int i;
for (i=0;i<strlen(zifu)/2;i++)
t=zifu[i];
zifu[i]=zifu[strlen(zifu)-i];
zifu[strlen(zifu)-i]=t;
return(zifu);
}
运行结果不行```
返回值是空```
不知道怎么改``
...全文
1565 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshichangjiu 2009-05-13
  • 打赏
  • 举报
回复
指针没学,就别先写能改变值的子函数,直接在主函数里完成逆序吧
#include<stdio.h>
#include<string.h>

#define N 100
main()
{
int i;
char t;
char a[N] = {0};
char d;
printf("输入字符串\n");
scanf("%s",a);
printf("%s:\n",a);
for (i=0;i<(int)strlen(a)/2;i++)
{
t=a[i];
a[i]=a[strlen(a)-i-1];
a[strlen(a)-i-1]=t;
}
printf("逆序%s:\n",a);

}
liaoweixiaoyu 2009-05-13
  • 打赏
  • 举报
回复
一个一个赋值呗
GaA_Ra 2009-05-13
  • 打赏
  • 举报
回复
修改是跟1楼那样- -
GaA_Ra 2009-05-13
  • 打赏
  • 举报
回复
1.返回值问题,fanxu函数要返回的是字符指针,你返回的却是char
2.边界问题,c中的数组下标是从0开始,得到的字符串长度strlen(zifu)-1才是最后一个字符的下标.
3.修改应该就2楼那样就OK:)
crst_zh 2009-05-13
  • 打赏
  • 举报
回复
接楼上的,刚才忘记顶一楼了,sorry.
goodname 2009-05-13
  • 打赏
  • 举报
回复
指针

你要是没学过的话可以这样
#include <stdio.h>
#include <string.h>
#define N 100
void main()
{
void fanxu(char zifu[]);
char a[N];
printf("请输入一个字符串:\n");
scanf("%s",a);
fanxu(a);
printf("反序%s:\n",a);
getch();
}

void fanxu(char zifu[])
{
char t;
int i;
for (i=0;i <strlen(zifu)/2;i++)
{
t=zifu[i];
zifu[i]=zifu[strlen(zifu)-i-1];
zifu[strlen(zifu)-i-1]=t;
}
return;
}
liliangbao 2009-05-13
  • 打赏
  • 举报
回复
注释,测试通过~
main() 
{
char fanxu(char zifu[]);
char a[N] = {0}; //初始化
char d;
printf("请输入一个字符串:\n");
scanf("%s",a);
fanxu(a);
printf("反序%s:\n",a); //输出a即可,因为是地址传递
getch();
}
int fanxu(char zifu[]) //不能返回数组
{
char t;
int i;
for (i=0;i <strlen(zifu)/2;i++)
{//大括号
t=zifu[i];
zifu[i]=zifu[strlen(zifu)-i-1];//再减一个一,下标从0开始
zifu[strlen(zifu)-i-1]=t;
}//大括号

return 0;
}
linruixin01 2009-05-13
  • 打赏
  • 举报
回复
指针我们还没学````
没其他改法嘛?
crst_zh 2009-05-13
  • 打赏
  • 举报
回复
for循环少{}
×表示返回的应该是一个字符串指针,你原来的仅仅返回char型,也就是一个字符。
linruixin01 2009-05-13
  • 打赏
  • 举报
回复
*在这是什么意思?
有什么作用?
goodname 2009-05-13
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
#define N 100
void main()
{
char *fanxu(char zifu[]);
char a[N];
char *d;
printf("请输入一个字符串:\n");
scanf("%s",a);
d=fanxu(a);
printf("反序%s:\n",d);
getch();
}

char *fanxu(char zifu[])
{
char t;
int i;
for (i=0;i <strlen(zifu)/2;i++)
{
t=zifu[i];
zifu[i]=zifu[strlen(zifu)-i-1];
zifu[strlen(zifu)-i-1]=t;
}
return(zifu);
}
tlx20093A 2009-05-13
  • 打赏
  • 举报
回复
学习咯

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧