Проблема со инициализацией строк

Как мне исправить свой код? Он должен выводить строку, инициализированную первыми n символами строки, введённой пользователем, но он не выводит вовсе ничего. Не могли бы вы мне помочь, пожалуйста?

Вот мой код:

#include <stdlib.h>

 int main () {
 char str[99];
 int n,i;
 int len = strlen(str);
 printf("Enter a string:");
 scanf("%s",str);
 printf("enter n:");
 scanf("%i",&n);
 if (n > len)
 {
 n= len;
 }
 char* new_string = malloc(n+1);
 for (int i = 0; i < n; i++) {
   new_string[i] = str[i];
 }
 new_string[i]='\0';
 printf("String:%s",new_string);

   return 0;
}

Ответы (0 шт):