home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
cprog
/
actlib12.zip
/
STRINGS.ZIP
/
CHCASE.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-02-25
|
2KB
|
82 lines
/* Copyright (C) 1993 Marc Stern (internet: stern@mble.philips.be) */
#include "strings.h"
#include <ctype.h>
/***
* Function : chcase
*
* Description : change case of a 2-byte character.
* All special characters are translated (éèà...)
*
* Parameters : in char car char to translate
* in casetype type UPPER/LOWER
*
* Value : type = { UPPER, LOWER }
*
* Decisions : If character > 255, no change made.
*
* Return : code of char translated
*
* OS/Compiler : All
***/
int chcase( int car, casetype type )
{ if ( car > 255 ) return car;
switch( car )
{
case 'à':
case 'â':
case 'ä':
case 'å':
case 'ª':
case 'á': car = 'a'; break;
case 'Ä':
case 'Å': car = 'A'; break;
case 'é':
case 'è':
case 'ê':
case 'ë': car = 'e'; break;
case 'É': car = 'E'; break;
case 'ï':
case 'î':
case 'ì':
case 'í': car = 'i'; break;
case 'ô':
case 'ö':
case 'ò':
case 'ó':
case 'º': car = 'o'; break;
case 'Ö': car = 'O'; break;
case 'û':
case 'ü':
case 'ù':
case 'ú': car = 'u'; break;
case 'Ü': car = 'U'; break;
case 'ÿ': car = 'y'; break;
case 'ç': car = 'c'; break;
case 'Ç': car = 'C'; break;
case 'ñ': car = 'n'; break;
case 'Ñ': car = 'N'; break;
}
if ( type == UPPER ) return toupper(car);
if ( type == LOWER ) return tolower(car);
return car;
}