C/tolower

< C

DeklaracjaEdytuj

#include <ctype.h>

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

OpisEdytuj

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.

ArgumentyEdytuj

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ść zwracanaEdytuj

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życiaEdytuj

#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