函数倒序输出字符数组输出结果里有乱码

函数倒序输出字符数组输出结果里有乱码

#include<stdio.h>
#include<string.h>
void reversal(char c1[],int x);
int main()
{
    int i;
    char c1[100];
    printf("请输入一串字符串:");
    gets(c1);
    c1[99]='\0';
    reversal(c1,100);
    for(i=0;i<100;i++)
        printf("%c",c1[i]);
    return 0;
}
void reversal(char c1[],int x)
{
    int i,a;
    for(i=0;i<=x/2;i++)
    {
        a=c1[i];
        c1[i]=c1[x-i-1];
        c1[x-i-1]=a;
    }
}

图片说明

#include<stdio.h>
#include<string.h>
void reversal(char c1[],int x);

int main()
{
    int i;
    char c1[100];
    printf("请输入一串字符串:");
    gets(c1);
    int n = 0;
    char *c2 = c1;
    while (*c2++) n++;
    reversal(c1, n);
    for (int i = 0; i < n; i++)
        printf("%c",c1[i]);
    return 0;
}

void reversal(char c1[],int x)
{
    int i,a;
    for(i=0;i<=x/2;i++)
    {
        a=c1[i];
        c1[i]=c1[x-i-1];
        c1[x-i-1]=a;
    }
}

问题解决请采纳