/* * program to demonstrate the ctype macros * print the type of each letter in the argument * * Matt Bishop, ECS 36A * -- April 12, 2024 original version * -- May 23, 2024 addrd isprint, isgraph, tolower, toupper */ #include #include /* * main routine */ int main(int argc, char *argv[]) { char *s; /* used to walk down string */ /* * Be sure there's an argument */ if (argc == 1){ fprintf(stderr, "Usage: %s string\n", argv[0]); return(1); } /* * walk the argument, printing the types of chars as we go */ for(s = argv[1]; *s; s++){ printf("The character \'%c\' (\\%03o) is:\n", *s, *s); if (isprint(*s)) printf("\tis printing\n"); if (isgraph(*s)) printf("\tis graphical\n"); if (isalnum(*s)) printf("\talphanumeric\n"); if (isalpha(*s)) printf("\talphabetic\n"); if (isupper(*s)) printf("\tupper case; lower case is '%c'\n", tolower(*s)); if (islower(*s)) printf("\tlower case; upper case is '%c'\n", toupper(*s)); if (islower(*s)) printf("\tlower case\n"); if (isspace(*s)) printf("\twhite space\n"); if (ispunct(*s)) printf("\tpunctuation\n"); if (iscntrl(*s)) printf("\ta control character\n"); if (isdigit(*s)) printf("\ta digit\n"); if (isxdigit(*s)) printf("\ta hexadecimal digit\n"); } /* * done! */ return(0); }