Why is the last output "eU2"?
#include<stdio.h>
#include<string.h>
void main()
{
    char str1[] = "See the stone set in your eyes";
    char str2[] = "U2";
    char* ptr;
    ptr = &str1[3];//the stone...
    printf("%d\n", str1 - ptr); // -3
    ptr[-1] = 0;// del s
    ptr = (++ptr)+1;  
    printf("%s\n", ptr); // he stone set in your eyes
    strcpy(ptr, str1+1); // ee the stone set in your eyes
    strcat(ptr-2, str2); 
    printf("%s\n", ptr);
}
I wrote notes next to lines I understood
 
     
    