C/tolower

Z Wikibooks, biblioteki wolnych podręczników.

< C

Spis treści

[edytuj] Deklaracja

#include <ctype.h>

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

[edytuj] Opis

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.

[edytuj] Argumenty

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.

[edytuj] Wartość zwracana

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ą.

[edytuj] Przykład użycia

#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

[edytuj] Zobacz też