Обратная строка в c неверный вывод

Rittam Das спросил: 27 ноября 2017 в 06:26 в: c

Я писал программу для обратного ввода введенной строки в C, и мой код:

#include<stdio.h>
#include<string.h>
void main()
{
    int sz;
    printf("Enter the size of the string : ");
    scanf("%d",&sz);
    char str[sz];
    gets(str);
    printf("Enter the string : \n");
    gets(str);
    char str1[sz];
    int i =0;
    --sz;
    for(i=0;i<=sz;i++)    
    {
          str1[sz-i]=str[i];    }
    printf("%s",str1);
}

хорошо, эта программа выдает странный вывод для строк размером 8,9 и 10 для размер 8: печатается обратная строка, за которой следуют пробел и 2 символа мусора, для формата 9 печатается обратная строка, за которой следуют 2 символа мусора, а для размера 10 обратная строка печатается символом мусора, а для других размеров строки программа работает правильно. почему это происходит?

0 ответов