次のコードの問題は何ですか?
#define N 30
int main() {
    char str[N], new_str[N];
    int i,len;
    printf("Please enter 20 letters. \n");
    scanf("%s", str);
    len = strlen(str);
    printf("The length of str is  %d ", len);
    for (i=0; i< len; i++)
        new_str[i]=str[len-1-i];
    printf("The result is: %s\n", new_str);
    return 1;
}
16文字未満のすべての文字列について、プログラムに問題がないことを確認しました。その上では、最後に未定義の文字が返されます。
  Please enter 20 letters.
  1234567891111111
  The result is: 1111111987654321q=V?.
ただし、str, new_str「」で初期化すると問題は解決します。私はまだ何が問題を引き起こしているのだろうかと思います。