C/tolower
< C
Deklaracja
edytuj#include <ctype.h> int tolower(int c); int toupper(int c);
Opis
edytujFunkcja tolower (toupper) sprawdza, czy dany znak znajduje się w zadanym przez locale zestawie dużych (małych) liter i jeśli tak przekształca go do odpowiedniej małej (dużej) litery o ile takowa istnieje.
Argumenty
edytuj- c
- wartość znaku reprezentowana jako typ unsigned char lub wartość makra EOF. Z tego powodu, przed przekazaniem funkcji argumentu typu char lub signed char należy go zrzutować na typ unsigned char lub unsigned int.
Wartość zwracana
edytujJeżeli nastąpiła konwersja funkcje zwracają wartość odpowiadającego znaku (zawsze taką samą dla tego samego znaku w danych ustawieniach locale'i) w przeciwnym wypadku zwracają wartość niezmienioną.
Przykład użycia
edytuj#include <ctype.h> // dla funkcji toupper i tolower
#include <locale.h> // dla funkcji setlocale
#include <stdio.h>
char * strtolower( char * dest, const char * src, size_t n )
{
if( !n )
return 0;
else
{
char * d = dest;
while ( *src && --n > 0)
*d++ = tolower(*src++);
*d = 0;
return dest;
}
}
char * strtoupper( char * dest, const char * src, size_t n )
{
if( !n )
return 0;
else
{
char * d = dest;
while( *src && --n > 0)
*d++ = toupper(*src++);
*d = 0;
return dest;
}
}
int main( void )
{
const char str[] = "Mąka Ćma";
char buf[sizeof( str )];
puts(strtolower(buf, str, sizeof buf));
puts(strtoupper(buf, str, sizeof buf));
setlocale(LC_ALL, "pl_PL"); // przystosowanie do warunków polskich
puts(strtolower(buf, str, sizeof buf));
puts(strtoupper(buf, str, sizeof buf));
return 0;
}
Powyższy program drukuje:
mąka Ćma MąKA ĆMA mąka ćma MĄKA ĆMA