素直にこれで。
char* extract_num(const char* source, char* dest)
{
    char* p = dest;
    while (*source)
    {
        if (isdigit(*source)) *p++ = *source;
        ++source;
    }
    *p = '\0';
    return dest;
}