The answers provided are great as long as you only want to handle Arabic numerals, and are working in an encoding where those numerals are sequential, and in the same place as ASCII.
This is almost always the case.
If it isn't then you need a proper library to help you.
Let's start with ICU.
UBool u_isdigit (UChar32 c)
int32_t u_charDigitValue ( UChar32 c )
Or maybe ICU has some function to do it for you - I haven't looked at it in detail.