C/tolower

Z Wikibooks, biblioteki wolnych podręczników.
< C(Przekierowano z C/toupper)
Przejdź do nawigacji Przejdź do wyszukiwania

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

Zobacz też[edytuj]