#include <stdio.h>
#include <wchar.h>
#include <wctype.h>

int main(void){
  wchar_t ch = 0;                                   // Stores a character

  fwprintf(stdout, L"Enter a character:\n ");
  fwscanf(stdin, L" %lc", &ch, sizeof(ch));       // Read a non-whitespace character
  if(iswalnum(ch))                                  // Is it a letter or a digit?
  {
    if(iswdigit(ch))                                // Is it a digit?
      fwprintf(stdout, L"You entered the digit %lc\n", ch);
    else if(iswlower(ch))                           // Is a lowercase letter?
      fwprintf(stdout, L"You entered a lowercase %lc\n", towupper(ch));
    else
      fwprintf(stdout, L"You entered an uppercase %lc\n", towlower(ch));
   }
  else if(iswpunct(ch))                             // Is it punctuation?
    fwprintf(stdout, L"You entered the punctuation character %lc.\n", ch);
  else
    fwprintf(stdout, L"You entered %lc, but I don't know what it is!\n", ch);
  return 0;
}