> backup=arg

All you're doing here is setting backup equal to the POINTER to the argument. So strcmp(arg,backup) will ALWAYS be zero even if you've successfully changed the text.

I don't think you should be trying to change the argv[] text; this is provided so you can know what options the user gave you at the command line. If you want to manipulate these, copy them to your own memory structures then you can do whatever you like with them.