main()
{
    char    *memcpy(),*memset(),*memchr(),*strchr(), *strrchr();
    char    *strpbrk(), *strtok(), *ucase(), *lcase();
    char    a[80] = "abcdefghijklmnopqrstuvwxy";
    char    b[80] = "                         z";
    char    c[80] = "dhlptx";
    char    d[80] = " a-b-c ";
    char    *ptr;
    if (isgraph(31)) puts("*** Error isgraph: 31 ***");
    if (isgraph(32)) puts("*** Error isgraph: ' ' ***");
    if (!isgraph(33)) puts("*** Error isgraph: 33 ***");
    if (!isgraph(126)) puts("*** Error isgraph: 126 ***");
    if (isgraph(127)) puts("*** Error isgraph: 127 ***");

    if (isxdigit(47)) puts("*** Error isxdigit: 47 ***");
    if (!isxdigit(48)) puts("*** Error isxdigit: 48 ***");
    if (!isxdigit(57)) puts("*** Error isxdigit: 57 ***");
    if (isxdigit(64)) puts("*** Error isxdigit: 64 ***");
    if (!isxdigit(65)) puts("*** Error isxdigit: 65 ***");
    if (!isxdigit(66)) puts("*** Error isxdigit: 66 ***");
    if (!isxdigit(70)) puts("*** Error isxdigit: 70 ***");
    if (isxdigit(71)) puts("*** Error isxdigit: 71 ***");
    if (isxdigit(96)) puts("*** Error isxdigit: 96 ***");
    if (!isxdigit(97)) puts("*** Error isxdigit: 97 ***");
    if (!isxdigit(102)) puts("*** Error isxdigit: 102 ***");
    if (isxdigit(103)) puts("*** Error isxdigit: 103 ***");

    memcpy(b, a, 25);
    if (strcmp(b,"abcdefghijklmnopqrstuvwxyz")) puts("*** Error memcpy ***");

    memset(b, '*', 25);
    if (strcmp(b,"*************************z")) puts("*** Error memset ***");

    strcpy(b,a);
    if (memcmp(a, b, 25)) puts("*** Error memcmp: a = b ***");
    b[25] = 'z';
    if (memcmp(a, b, 26) != -1) puts("*** Error memcmp: a < b ***");
    if (memcmp(b, a, 26) != 1)  puts("*** Error memcmp: b > a ***");
    a[0] = 'z';
    if (memcmp(a, b, 25) != 1) puts("*** Error memcmp: a > b ***");
    if (memcmp(b, a, 25) != -1)  puts("*** Error memcmp: b < a ***");

    if ((ptr = memchr(a, 'c', 4)) && *ptr == 'c');
    else puts("*** Error memchr: c ***");
    if ((ptr = memchr(a, 'd', 4)) && *ptr == 'd');
    else puts("*** Error memchr: d ***");
    if (memchr(a, 'e', 4)) puts("*** Error memchr: e ***");
    if (memchr(a, 'f', 0)) puts("*** Error memchr: f ***");

    if (strrchr(a, 'a')) puts("*** Error strrchr: a ***");
    if ((ptr = strrchr(a, 0)) && *ptr == '\0');
    else puts("*** Error strrchr: 0 ***");
    if ((ptr = strrchr(a, 'y')) && *ptr == 'y');
    else puts("*** Error strrchr: y ***");
    if ((ptr = strrchr(a, 'z')) && *ptr == 'z');
    else puts("*** Error strchr: z ***");

    if (strrchr(a, 'a')) puts("*** Error strchr: a ***");
    if ((ptr = strchr(a, 0)) && *ptr == '\0');
    else puts("*** Error strchr: 0 ***");
    if ((ptr = strchr(a, 'y')) && *ptr == 'y');
    else puts("*** Error strchr: y ***");
    if ((ptr = strrchr(a, 'z')) && *ptr == 'z');
    else puts("*** Error strrchr: z ***");

    a[0] = 'a';
    if (strcspn(a, "c") != 2) puts("*** Error strcspn: c ***");
    if (strcspn(a, "z") != 25) puts("*** Error strcspn: z ***");
    if (strcspn(a, "yz") != 24) puts("*** Error strcspn: y ***");
    if (strcspn(a, 0) != 25) puts("*** Error strcspn: 0 ***");
    if (strcspn("a", "a") != 0) puts("*** Error strcspn: a ***");
    if (strcspn("", "b") != 0) puts("*** Error strcspn: b  ***");

    if (strspn(a, "abcd") != 4) puts("*** Error strspn: abcd  ***");
    if (strspn(a, "dcba") != 4) puts("*** Error strspn: dcba  ***");
    if (strspn(a, "b") != 0) puts("*** Error strspn: b  ***");
    if (strspn(a, "abcedfghijklmnopqrstuvwxyz") != 25)
        puts("*** Error strspn: abcdefghijklmnopqrstuvwxyz ***");
    if (strspn("az", a)  != 1) puts("*** Error strspn: a ***");
    if (strspn(a, "")  != 0) puts("*** Error strspn: '' ***");
    if (strspn("", "a")  != 0) puts("*** Error strspn: 'a' ***");

    if (*strpbrk(a, "edc") != 'c') puts("*** Error strpbrk: c ***");
    if (*strpbrk(a, "d") != 'd') puts("*** Error strpbrk: d ***");
    if (*strpbrk(a, "y") != 'y') puts("*** Error strpbrk: y ***");
    if (strpbrk(a, " ") != 0) puts("*** Error strpbrk: ' ' ***");

    if (strcmp(strtok(a,c),"abc")) puts("*** Error strtok: abc  ***");
    if (strcmp(strtok(0,c),"efg")) puts("*** Error strtok: efg  ***");
    if (strcmp(strtok(0,c),"ijk")) puts("*** Error strtok: ijk  ***");
    if (strcmp(strtok(0,c),"mno")) puts("*** Error strtok: mno  ***");
    if (strcmp(strtok(0,c),"qrs")) puts("*** Error strtok: qrs  ***");
    if (strcmp(strtok(0,c),"uvw")) puts("*** Error strtok: uvy  ***");
    if (strcmp(strtok(0,c),"y"))   puts("*** Error strtok: y  ***");
    if (strtok(0,c)) puts("*** Error strtok: ''  ***");
    if (strtok(0,c)) puts("*** Error strtok: ''  ***");
    if (strcmp(strtok(a,c),"abc")) puts("*** Error strtok: abc  ***");

    if (strcmp(ucase(d)," A-B-C ")) puts("*** Error ucase: A-B-C ***");

    if (strcmp(lcase(d)," a-b-c ")) puts("*** Error lcase: a-b-c ***");

    puts("done");
}
 ***");
    if (strcmp(strtok(0,c),"uvw")) puts("*** Error strtok: uvy  ***");
    if (strcmp(strtok(0,c),