So Rust is complaining because you are trying to move the argument out of the vector by doing the assignment zipcode = args[1] and it does not allow you to move out of the vector using indexing syntax. It also doesn't work when you try to use a reference because you said above that zipcode is an owned String, not a reference to a String.
You have two options to fix this. You can clone the string out of args so that you don't move it out. This leaves the original string inside of args:
zipcode = args[1].clone();
Or you could also take the zipcode out out args by using remove()
zipcode = args.remove(1); // Note that you must make `args` mutable now
This will modify the args variable, which may or may not be desirable depending on your use-case.