Not sure what you mean. Numbers in those languages aren't in base 10 (if anything, they're base 2) -- when you format the number into a string, you format it with a base.
So, if you have a string representation of a number and you convert it to a number, and then format as a different base -- you aren't converting to base 10 -- you are converting string to int to string.
So, if the question is how do I take a string that represents a number in base B1 and convert it to a string in base B2 without converting it to an int, then I don't see a way to do that easily.
In your example 214 in base 5 is 2*5^2 + 1 * 5 + 4 -- but if you don't want to convert to int, then you don't know that. This number is 59 in base 10, but the computer sees it as 00111011. You can easily format that as Hex. Ultimately, you need to do the divides and multiplies anyway, and store the intermediate results somewhere.
Yes and no. Yes if you don't include the fact that the computer does everything in binary (base 2) as another representation. After all, what is the base of value in the following code?
long value = strtol(string, NULL, base);
In some senses value is just an integer, and has no associated base. Combine that with a function to convert from a value to a string representaton in a particular base and you can easily from a string representation in one base to a string representation in another base. Since there's no intermediate string representation there is, is some sense, no intermediate base value.