/* The ctype Library for Characters */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
//string
char s[]="$*(xF4u#a*?d73RS @!UA+}2,.H";
//accumulators
int alnum=0;
int alpha=0;
int digit=0;
int lower=0;
int upper=0;
int punct=0;
int space=0;
int blank=0;
int i;
//count the different categories
for (i=0; i<strlen(s); ++i) {
if (isalnum(s[i])) ++alnum;
if (isalpha(s[i])) ++alpha;
if (isdigit(s[i])) ++digit;
if (islower(s[i])) ++lower;
if (isupper(s[i])) ++upper;
if (ispunct(s[i])) ++punct;
if (isspace(s[i])) ++space;
if (isblank(s[i])) ++blank;
}
//report
printf ("%d alphanumeric, %d alphabetics, %d digits\n", alnum,alpha,digit);
printf ("%d uppercase letters, %d lowercase letters\n", upper,lower);
printf ("%d punctuation characters, %d spaces, %d blanks\n\n", punct, space, blank);
printf ("Original: ");
for (i=0; i<strlen(s); ++i) printf ("%c", s[i]);
printf ("\n");
printf ("Uppercase: ");
for (i=0; i<strlen(s); ++i) printf ("%c", toupper(s[i]));
printf ("\n");
printf ("Lowercase: ");
for (i=0; i<strlen(s); ++i) printf ("%c", tolower(s[i]));
printf ("\n");
return (0);
}
14 alphanumeric, 10 alphabetics, 4 digits
6 uppercase letters, 4 lowercase letters
12 punctuation characters, 2 spaces, 2 blanks
Original String: $*(xF4u#a*?d73RS @!UA+}2,.H
uppercase String: $*(XF4U#A*?D73RS @!UA+}2,.H
Lowercase String: $*(xf4u#a*?d73rs @!ua+}2,.h