C/tolower
Wygląd
Deklaracja
[edytuj]#include <ctype.h> int tolower(int c); int toupper(int c);
Opis
[edytuj]Funkcja 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
[edytuj]Jeż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