In this instance it would probably be best to just write a function that performs arithmetic on numeric strings.
i.e. something you can call like this:

char buf[BUFLEN];
Add("13", "21", buf,...