Deklaracja

edytuj
#include <ctype.h>

int tolower(int c);
int toupper(int c);

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

Zobacz też

edytuj