#include <stdio.h>
#include <string.h>
#include <ctype.h>


char* string_copy_if(char* first, char* last, char* res, int (*pred)(int))
{
    while (first != last) {
        if (pred(*first)) *res++ = *first;

        ++first;
    }

    return res;
}

int main(void)
{
    char s[256] = "aaa012345 145";
    char d[256] = "";

    string_copy_if(&s[0], &s[strlen(s)], d, isdigit);

    printf("%s\n", s);
    printf("%s\n", d);

    return 0;
}