Blindinlights 2021-11-13 21:16 采纳率: 100%
浏览 53
已结题

两次的输出为什么不一样

代码如下


#include<stdio.h>
#include<string.h>
char *re;
char* func(char *s);
int main ()
{
    char ch[1000];
    char *x;
    scanf("%s",&ch);
    //printf("%s\n",ch);
    printf("%s",func(ch));

    return 0;
}
char* func(char *s)
{
    char *re;
    char x[1000];
    int lenth,i=0;
    lenth = (int)strlen(s);
    s = s+lenth-1;
    while(i<=lenth)
    {
        if(i==lenth)
            x[i] = '\0';
        else
            x[i]=*(s--);
        i++;
    }    
    re = &x[0];


    return re;
}

func的作用是使输入的字符按照反序排放

当主函数中没有没有printf("%s\n",ch);是输出结果是这样的

img

有printf("%s\n",ch);的时候是这样的

img

求解答是什么原因导致两次输出不一样?

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-11-13 21:19
    关注

    scanf("%s",&ch);g改为scanf("%s",ch);
    你这居然还能输入字符串?

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

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月13日