home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / cprog / actlib12.zip / STRINGS.ZIP / CHCASE.C < prev    next >
C/C++ Source or Header  |  1993-02-25  |  2KB  |  82 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #include "strings.h"
  4. #include <ctype.h>
  5.  
  6. /***
  7.  *  Function    :  chcase
  8.  *
  9.  *  Description :  change case of a 2-byte character.
  10.  *              All special characters are translated (éèà...)
  11.  *
  12.  *  Parameters  :  in   char      car      char to translate
  13.  *                 in   casetype  type     UPPER/LOWER
  14.  *                                        
  15.  *  Value       :  type = { UPPER, LOWER }
  16.  *
  17.  *  Decisions   :  If character > 255, no change made.
  18.  *
  19.  *  Return      :  code of char translated
  20.  *
  21.  *  OS/Compiler :  All
  22.  ***/
  23.  
  24. int chcase( int car, casetype type )
  25.  
  26. { if ( car > 255 ) return car;
  27.  
  28.   switch( car )
  29.     {
  30.       case 'à':
  31.       case 'â':
  32.       case 'ä':
  33.         case 'å':
  34.       case 'ª':
  35.       case 'á': car = 'a'; break;
  36.  
  37.       case 'Ä':
  38.       case 'Å': car = 'A'; break;
  39.  
  40.       case 'é':
  41.       case 'è':
  42.       case 'ê':
  43.       case 'ë': car = 'e'; break;
  44.  
  45.       case 'É': car = 'E'; break;
  46.  
  47.       case 'ï':
  48.       case 'î':
  49.       case 'ì':
  50.       case 'í': car = 'i'; break;
  51.  
  52.       case 'ô':
  53.       case 'ö':
  54.         case 'ò':
  55.       case 'ó':
  56.       case 'º': car = 'o'; break;
  57.  
  58.       case 'Ö': car = 'O'; break;
  59.  
  60.       case 'û':
  61.       case 'ü':
  62.       case 'ù':
  63.       case 'ú': car = 'u'; break;
  64.  
  65.       case 'Ü': car = 'U'; break;
  66.  
  67.       case 'ÿ': car = 'y'; break;
  68.  
  69.       case 'ç': car = 'c'; break;
  70.  
  71.       case 'Ç': car = 'C'; break;
  72.  
  73.       case 'ñ': car = 'n'; break;
  74.  
  75.       case 'Ñ': car = 'N'; break;
  76.     }
  77.  
  78.   if ( type == UPPER ) return toupper(car);
  79.   if ( type == LOWER ) return tolower(car);
  80.   return car;
  81. }
  82.