home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / c / other / learn / case.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-25  |  1.6 KB  |  59 lines

  1. /* CASE.C illustrates case conversion and other conversions.
  2.  * Functions illustrated include:
  3.  *      strupr          toupper         _toupper
  4.  *      strlwr          tolower         _tolower
  5.  *      strrev          toascii
  6.  */
  7.  
  8. #include <string.h>
  9. #include <stdio.h>
  10. #include <ctype.h>
  11.  
  12. char mstring[] = "Dog Saw Dad Live On";
  13. char *ustring, *tstring, *estring;
  14. char *p;
  15.  
  16. main()
  17. {
  18.     printf( "Original:\t%s\n", mstring );
  19.  
  20.     /* Upper and lower case. */
  21.     ustring = strupr( strdup( mstring ) );
  22.     printf( "Upper case:\t%s\n", ustring );
  23.  
  24.     printf( "Lower case:\t%s\n", strlwr( ustring ) );
  25.  
  26.     /* Reverse case of each character. */
  27.     tstring = strdup( mstring );
  28.     for( p = tstring; *p; p++ )
  29.     {
  30.         if( isupper( *p ) )
  31.             *p = tolower( *p );
  32.         else
  33.             *p = toupper( *p );
  34.  
  35.         /* This alternate code (commented out) shows how to use _tolower
  36.          * and _toupper for the same purpose.
  37.         if( isupper( *p ) )
  38.             *p = _tolower( *p );
  39.         else if( islower( *p ) )
  40.             *p = _toupper( *p );
  41.          */
  42.     }
  43.     printf( "Toggle case:\t%s\n", tstring );
  44.  
  45.     /* Encode and decode string. The decoding technique will convert
  46.      * WordStar-style strings, which have some high bits set.
  47.      */
  48.     estring = strdup( mstring );
  49.     for( p = estring; *p; p++ )
  50.         *p = *p | 0x80;
  51.     printf( "Encoded:\t%s\n", estring );
  52.  
  53.     for( p = estring; *p; p++ )
  54.         *p = toascii( *p );
  55.     printf( "Decoded:\t%s\n", estring );
  56.  
  57.     printf( "Reversed:\t%s\n", strrev( ustring ) );
  58. }
  59.