为什么添加到 ascii 会增加额外的字符?

Why does adding to ascii adds up extra characters?

所以,我尝试用 C 编写一个程序,将大写字符转换为小写,只需将大写字符加上 32。

#include <stdio.h>

int main()
{
  char user_inp[16];
  char final_res[16];
  int ascii;
  printf("%s", "Enter any string : ");
  scanf("%s", &user_inp);

  for (int i = 0; user_inp[i] != 0; i++){
    ascii = (int) user_inp[i];
    if (ascii < 91&& ascii > 64){
      ascii = ascii + 32;
    }
    final_res[i] = ascii;
  }

  printf("%s\n", final_res);

  return 0;
}

但是当我 运行 它时,我得到了一些额外的乱码结果。

For example,
Input : Apple
Output : apple

But,
Input : Encyclopedia
Output : encyclopedia�U

我遇到了什么问题?我该如何解决这个问题?

C 字符串需要以 null 结尾。 user_inp 是。但是 final_res 不是。