C standard library - ctype.h

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Rozdelenie funkcií jazyka C podľa knižníc, v ktorých sú definované
<ctype.h> <limits.h> <stdio.h> <stdlib.h> <math.h> <string.h> <time.h>

isalnum
isalpha
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit

printf
scanf
getc
putc
getchar
putchar
fprintf
fscanf
fgetc
fputc
fopen
fclose
feof

system
malloc
qsort
rand
srand
atoi
atol
atof
itoa
div
abs
labs

pow
fabs
exp
log
log10
sqrt
ceil
sin
cos

strlen
strcmp
strchr
strcpy
strstr
strcat
strncat

clock
time

V hlavičkovom súbore ctype.h header je definovaných niekoľko funkcií pre testovanie a mapovanie znakov.

Definované funkcie

Funkcie pre testovanie znakov

Všetky funkcie majú parameter celé číslo (int) a vracajú nenulovú hodnotu (true) aj vstupný parameter spĺňa test. V opačnom prípade sa vráti nula (false).

funkcia popis
int isalnum(int c) Funkcia overí či parameter c je alfanumerický znak
int isalpha(int c) Funkcia overí či parameter c je znak abecedy
int isdigit(int c) Funkcia overí či parameter c je desiatkové číslo (0...9)
int isgraph(int c) Funkcia overí či parameter c má grafickú reprezentáciu
int islower(int c) Funkcia overí či parameter c je malé písmeno abecedy
int isprint(int c) Funkcia overí či parameter c je tlačiteľný/viditeľný
int ispunct(int c) Funkcia overí či parameter c je špeciálny znak (definíciu znakov pozri nižšie)
int isspace(int c) Funkcia overí či parameter c je biely znak
int isupper(int c) Funkcia overí či parameter c je veľké písmeno abecedy
int isxdigit(int c) Funkcia overí či parameter c je hexadecimálne číslo (0...9,A/a, ... F/f)

Funkcie pre konverziu znakov

funkcia popis
int tolower(int c) Skonvertuje znak (veľké písmeno) na malé písmeno
int toupper(int c) Skonvertuje znak (malé písmeno) na veľké písmeno

Kategórie znakov

kategória obsah
čísla { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
16-ové čísla { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f }.
malé písmená { a b c d e f g h i j k l m n o p q r s t u v w x y z }
veľké písmená {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }
písmená malé a veľké písmená
alfanumerické znaky čísla, malé písmená, veľké písmená
špeciálny znak ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
znak s grafickou reprezentáciou alfanumerické znaky a špeciálne znaky
biely znak tabulátor, nová riadok, vertikálny tabulátor, medzera, CR - návrat vozíku (carriage return), FF - form feed
tlačiteľný znak alfanumerický, špeciálny a biely znak
riadiace znaky v tabuľke ASCII sú to znaky s hodnotou od 0 po 31 a 177 (DEL)
prázdne znaky medzery a tabulátory

Príklad použitia

#include <stdio.h> 
#include <ctype.h> 

/**
* Testuje znaky
* @param char a[] reťazec, ktorého znaky budeme počítať
*/
void identify_alpha_numeric(char a[])
{
	// pocet alfanumerickych znakov, pocet cislic
	int count_alpha = 0, count_digit = 0;
	// prechadza sa cely retazec, pokial sa nenarazi an jeho koniec
	for (int i = 0; a[i] != '\0'; i++) {
		// test, ci je znak pismeno
		if (isalpha(a[i]))
			count_alpha++;
		// test, ci je znak cislo 
		if (isdigit(a[i]))
			count_digit++;
	}
	// vypis vysledkov
	printf("Pocet pismen je: %d\n", count_alpha);
	printf("Pocet cisel je: %d", count_digit);
}

int main()
{
	// inicializacia retazca 
	char a[] = "Ahoj 1234, ukazka testovacich funkcii v stdio.h";
	identify_alpha_numeric(a);
}

Výstup:

 Pocet pismen je: 35
 Pocet cisel je: 4

Referencie