这个结果为什么会出现这种, 怎么改

调用GetInput()函数从键盘任意输入一个字符串,然后分别在GetInput()和main()中输出该字符串
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
char p;
p=a;
int i,t,c;
printf("请输入一个字符串:");
gets (a);
i=strlen(a);
c=i;
for(i=strlen(a);i>0;i--)
{
t=
(p+i);
(p+i)=(p+c-i);
*(p+c-i)=t;
}
printf("该字符串逆反后为%s!\n",*p);
return 0;
}

img


#include <stdio.h>
#include <string.h>
int main()
{
    char a[100], t;
    char *p;
    p = a;
    int i, c;
    printf("请输入一个字符串:");
    gets(a);
    c = strlen(a);
    for (i = 0; i < c / 2; i++)
    {
        t = *(p + i);
        *(p + i) = *(p + c - 1 - i);
        *(p + c - 1 - i) = t;
    }
    printf("该字符串逆反后为%s!\n", p);
    return 0;
}

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    char p[100] = {0};
    char t;
    int i, c;
    printf("请输入一个字符串:");
    gets_s(a);
    i = strlen(a);
    c = i;
    for (i = c-1; i >= 0; i--)
    {
        p[c - i - 1] = a[i];  //p接收逆序数组
        //t = *(p + i);
        //*(p + i) = *(p + c - i);
        //*(p + c - i) = t;
    }
    p[c - i - 1] = '\0';      //结尾加结束符
    printf("该字符串逆反后为%s!\n", p);
    return 0;
}