for(int i=0;str[i]!='\0';i++,strcpy(&str[i],"\0"));
- the i++ is incrementing i before the strcpy executes - so it'll be taking the address of str[1] on the first iteration - skipping over str[0] - hence you'll get the first character.
Note that KennyTM's response is a far better way of doing this - but I guess you're learning / experimenting.