用字符指针作函数参数编程实现字符串逆序存放功能。
输入提示信息:"Input a string:"
输入字符串用gets()
输出提示信息:"Inversed results:%s\n"
妹子的程序:
#include
#include
#define N 100
void Inversed(char *s);
int main()
{
char a[N];
printf("Input a string:");
gets(a);
Inversed(a);
printf("Inversed results:%s\n",a);
return 0;
}
void Inversed(char *s)
{
char str[N];
s=&str[0];
int i;
i=strlen(str);
char *t;
t=&str[i-1];
char temp;
for(;*s!='\0';s++,t--)
{
*s=*t;
}
}
为什么输出的结果跟原来一样?究竟该怎么改?求大神 详解。
只是一道简单的小题目,却让妹子魂不守舍
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
- 战在春秋 2017-04-25 07:17关注
其它部分不变,Inversed函数修改如下:
void Inversed(char *str) { if (str == 0) //判断是否为null { return; } if (*str == 0) //判断是否为空字符串 { return; } /* 获取首尾字符地址 */ char *start = str; char *end = start + strlen(str) - 1; char temp; /* 交换 */ while (end > start) { temp = *start; *start = *end; *end = temp; ++start; --end; } }
测试通过,思路还是比较清晰的,可以参考注释。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器