You haven’t initialized *str_new
so it is just copying str_old
to some random address. You need to do either this:
char str_new[100];
or
char * str = (char *) malloc(100);
You will have to #include <stdlib.h>
if you haven’t already when using the malloc function.