唐僧爱吃唐僧肉 2017-04-25 06:50 采纳率: 16.7%
浏览 964
已采纳

只是一道简单的小题目,却让妹子魂不守舍

用字符指针作函数参数编程实现字符串逆序存放功能。
输入提示信息:"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;
}
}
为什么输出的结果跟原来一样?究竟该怎么改?求大神 详解。

  • 写回答

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;
        }
    }
    

    测试通过,思路还是比较清晰的,可以参考注释。

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 fx2n系列plc的自控成型机模拟
  • ¥15 时间序列LSTM模型归回预测代码问题
  • ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统
  • ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)
  • ¥100 某宝多次访问被拒绝,求解
  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!