c character classification
Tento výukový program vysvetľuje príklady funkcií znakov a transformácie v C ++. Niektoré dôležité funkcie, ktorých sa to týka, sú isigit, islower, isupper, isalpha atď .:
V našom predchádzajúcom návode „Funkcie knižnice“ sme videli rôzne hlavičky, ktoré poskytujú početné funkcie fungujúce na rôznych typoch údajov. Hlavička je jedna taká hlavička, ktorá obsahuje množinu funkcií, ktoré klasifikujú a manipulujú s jednotlivými znakmi.
=> Navštívte tu a dozviete sa C ++ od nuly.
Funkcie deklarované v hlavičke berú ako parameter jeden znak (ekvivalent int) a vracajú celočíselnú hodnotu, ktorá môže byť buď boolovská hodnota alebo znaková hodnota. Hodnota 0 (nula) označuje hodnotu false, zatiaľ čo iná hodnota ako 0 (nenulová) označuje hodnotu true.
Tieto jednoznakové funkcie je možné v programe použiť zahrnutím hlavičky. Tieto funkcie sú široko používané a akceptované a sú mimoriadne užitočné v programovaní v C ++ na testovanie a transformáciu alebo manipuláciu so znakmi.
V tomto výučbe sa budeme zaoberať rôznymi znakovými funkciami a uvidíme, ako je možné každú z týchto funkcií použiť v programe.
Čo sa dozviete:
Znakové funkcie C ++
Funkcie znakov C ++ sú funkcie, ktoré berú ako parameter iba jeden znak (prenášaný na int) a vracajú výsledok. Môžu to byť klasifikačné funkcie ako isalpha, isalnum, isdigit, islower, isupper atď., Aby sme vymenovali aspoň niektoré a transformačné funkcie ako toupper a tolower, ktoré transformujú daný znak na malé alebo malé písmená.
V záhlaví máme definované dva typy funkcií, ktoré sú uvedené nižšie.
i) Funkcie klasifikácie znakov
Funkcie klasifikácie znakov sa používajú na kontrolu, či jeden znak odovzdaný ako argument funkcii patrí do určitej kategórie.
Tabuľkovali sme funkcie klasifikácie znakov uvedené v hlavičke nižšie:
Nie | Názov funkcie | Funkcia Účel |
---|---|---|
7 | islower | Skontroluje, či sú dané znaky malé |
jeden | isalnum | Skontroluje, či je daný znak alfanumerický |
dva | izalfa | Skontroluje, či je znak abecedný |
3 | je prázdne | Skontroluje, či je znak prázdny |
4 | iscntrl | Skontroluje, či je daný znak kontrolným znakom |
5 | je číslica | Skontroluje, či je daný znak desatinnou číslicou |
6 | isgraph | Skontroluje, či má daný znak grafické znázornenie |
8 | tlačiť | Skontroluje, či je znakom vytlačiteľný znak |
9 | jepunkčný | Skontroluje, či je znak interpunkčný znak |
10 | isspace | Skontroluje, či je znak prázdnym znakom |
jedenásť | je hore | Skontroluje, či je daný znak veľký |
12 | isxdigit | Skontroluje, či je znak hexadecimálna číslica |
(ii) Funkcie transformácie znakov
Funkcie transformujúce znaky sa prevádzajú medzi prípadmi. Nasledujúce funkcie sú obsiahnuté v súbore.
Nie | Názov funkcie | Funkčný účel |
---|---|---|
jeden | znížiť | Skonvertuje veľké písmená na malé písmená |
dva | tuper | Skonvertuje malé písmená na veľké písmená |
Pozrime sa podrobne na každú z funkcií znakov (klasifikácia a transformácia). Ďalej uvedieme jednoduchý príklad programovania v C ++ pre každú z funkcií.
Isalnum
Funkčný prototyp: int isalnum (int c);
Parametre: c => Znak, ktorý by sa mal skontrolovať, či je alebo nie je alfanumerický
Návratová hodnota:
nenulová => c je alfanumerický
0 => c nie je alfanumerický
Popis: Táto funkcia kontroluje, či je daný znak c alfanumerický alebo nie. Podľa alfanumerických znakov to znamená, že znak je medzi A (a) -Z (z) alebo 0 až 9.
V C ++ je táto funkcia špecifická pre miestne nastavenie a jej definícia je uvedená v hlavičke.
Príklad:
#include #include using namespace std; int main() { char chary(12) = 'Hello World'; // checking for isalnum() function for (int i=0; i<12; i++) { if (isalnum(chary (i))) cout << chary (i) << ' is alphanumeric' << endl; else cout << chary (i) << ' is not alphanumeric' << endl; } cout << endl; }
Výkon:
Izalfa
Funkčný prototyp: int isalpha (int c);
Parametre: c-> Znak, ktorý sa má skontrolovať, či je abecedný alebo nie.
Návratová hodnota:
nenulová => c je abecedné
0 => nie je abecedné
Popis: Táto funkcia kontroluje, či je daný znak c abecedný, tj. Medzi malými a veľkými písmenami. Rovnako ako isalnum aj táto funkcia závisí od miestneho nastavenia, ktoré používame.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(5) = 'sth1'; for (int i=0; i<5; i++) { if (isalpha(ch_alpha(i))) cout << ch_alpha(i) << ' is an alphabet' << endl; else cout << ch_alpha(i) << ' is not an alphabet' << endl; } cout << endl; }
Výkon:
Isblank
Funkčný prototyp: int isblank (int c);
Parametre: c => Znak, ktorý sa má skontrolovať.
Návratová hodnota:
nenulová => znak je prázdny
0 => znak nie je prázdny
Popis: Táto funkcia kontroluje, či je daný znak prázdny alebo nie. Prázdny znak je medzera, ktorá sa používa na oddelenie slov v riadku textu.
V C ++ existuje miestna špecifická verzia funkcie isblank v.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(6) = 's t h'; for (int i=0; i<6; i++) { if (isblank(ch_alpha(i))) cout << ch_alpha(i) << ' is a blank' << endl; else cout << ch_alpha(i) << ' is not a blank' << endl; } cout << endl; }
Výkon:
Všimnite si posledný riadok na výstupe, ktorý hovorí „nie je prázdny“. Je to tak kvôli poslednej pozícii poľa znakov, ktorá nie je inicializovaná na hodnotu, ale stále má pozíciu tlače. Preto to nie je prázdne miesto.
Iscntrl
Funkčný prototyp: int iscntrl (int c);
Parametre: c => Znak, ktorý sa má skontrolovať
Návratová hodnota:
nenulová => c je riadiaci znak
0 => c nie je riadiaci znak
Popis: Funkcia skontroluje, či je daný parameter riadiacim znakom. Kontrolný znak je znak, ktorý sa nezobrazí na displeji alebo nezaberá pozíciu pre tlač.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(6) = 's
t h'; for (int i=0; i<6; i++) { if (iscntrl(ch_alpha(i))) cout << ch_alpha(i) << ' is a control character' << endl; else cout << ch_alpha(i) << ' is not a control character' << endl; } cout << endl; }
Výkon:
Isdigit
Funkčný prototyp: int isdigit (int c)
Parametre: c => Znak vrhnutý na int, ktorého hodnota sa má skontrolovať.
Návratová hodnota: nenulová => c je desatinná číslica
0 => c nie je číslica
Popis: Táto funkcia kontroluje, či je daný parameter desatinná číslica alebo nie. Znak je desatinná číslica, ak je jeho hodnota medzi 0 a 9.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(5) = 'a12b'; for (int i=0; i<5; i++) { if (isdigit(ch_alpha(i))) cout << ch_alpha(i) << ' is a digit' << endl; else cout << ch_alpha(i) << ' is not a digit' << endl; } cout << endl; }
Výkon:
Isgraph
Funkčný prototyp: int isgraph (int c)
Parametre: c => Znak vložený int, ktorý sa kontroluje pomocou funkcie isgraph
Návratová hodnota:
nenulová => c je grafické znázornenie
0 => c nie je grafické znázornenie
Popis: Funkcia skontroluje, či je daný znak c znakom s grafickým znázornením. Znak, ktorý je možné vytlačiť, je znak s grafickým znázornením.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(6) = 'a~12b'; for (int i=0; i<6; i++) { if (isgraph(ch_alpha(i))) cout << ch_alpha(i) << ' is a graphical character' << endl; else cout << ch_alpha(i) << ' is not a graphical character' << endl; } cout << endl; }
Výkon:
Islower
Funkčný prototyp: int islower (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie islower.
Návratová hodnota:
non-zer0 => c je malé písmeno
0 => c nie je malé písmeno
Popis: Funkcia islower skontroluje, či je daný znak c malý alebo nie.
Malé písmeno je znak, ktorý má jednu z hodnôt: 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.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(4) = 'Sth'; for (int i=0; i<4; i++) { if (islower(ch_alpha(i))) cout << ch_alpha(i) << ' is a lowercase character' << endl; else cout << ch_alpha(i) << ' is not a lowercase character' << endl; } cout << endl; }
Výkon:
Tlač
Funkčný prototyp: int sprint (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie isprint.
Návratová hodnota:
non-zer0 => c je možné tlačiť
0 => c sa nedá vytlačiť
Popis: Funkcia isprint kontroluje, či je daný znak vytlačiteľný. Tlačiteľný znak je znak, ktorý na displeji zaberá pozíciu pre tlač.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(4) = 'Sth'; for (int i=0; i<4; i++) { if (isprint(ch_alpha(i))) cout << ch_alpha(i) << ' is a printable character' << endl; else cout << ch_alpha(i) << ' is not a printable character' << endl; } cout << endl; }
Výkon:
Ispunct
Funkčný prototyp: int ispunct (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie ispunct.
Návratová hodnota:
non-zer0 => c je interpunkčný znak
0 => c nie je interpunkčný znak
Popis: Táto funkcia kontroluje, či je daný znak interpunkčný znak. Za interpunkčný znak sa považuje znak, ktorý je grafickým znakom (z isgrafu) a nie alfanumerickým (z isalnum).
Príklad:
#include #include using namespace std; int main() { char ch_alpha(8) = 'sth@123'; for (int i=0; i<8; i++) { if (ispunct(ch_alpha(i))) cout << ch_alpha(i) << ' is a punctuation character' << endl; else cout << ch_alpha(i) << ' is not a punctuation character' << endl; } cout << endl; }
Výkon:
Isspace
Funkčný prototyp: int isspace (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie isspace.
Návratová hodnota:
non-zer0 => c je prázdny priestor
0 => c nie je medzera
Popis: Táto funkcia kontroluje, či je daný znak prázdnym miestom. Pre miestne nastavenie „C“ sú znaky prázdnych znakov niektoré z nasledujúcich.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(7) = 's t
h'; for (int i=0; i<7; i++) { if (isspace(ch_alpha(i))) cout << ch_alpha(i) << ' is a white space' << endl; else cout << ch_alpha(i) << ' is not a white space' << endl; } cout << endl; }
Výkon:
Isupper
Funkčný prototyp: int isupper (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie isupper.
Návratová hodnota:
non-zer0 => c je veľké písmeno
0 => c nie je veľké písmeno
Popis: Funkcia islower skontroluje, či je daný znak c veľký alebo nie.
Veľkým písmenom je znak, ktorý má jednu z hodnôt: 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.
Príklad:
#include #include using namespace std; int main() { char ch_alpha(4) = 'STh'; for (int i=0; i<4; i++) { if (isupper(ch_alpha(i))) cout << ch_alpha(i) << ' is an uppercase character' << endl; else cout << ch_alpha(i) << ' is not an uppercase character' << endl; } cout << endl; }
Výkon:
Isxdigit
Funkčný prototyp: int isxdigit (int c)
Parametre: c => Znak, ktorý sa má skontrolovať pomocou funkcie isxdigit.
Návratová hodnota:
non-zer0 => c je hexadecimálne
0 => c nie je hexadecimálne
Popis: Táto funkcia kontroluje, či je daný znak hexadecimálna číslica. Platné hexadecimálne číslice sú 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
Príklad:
#include #include using namespace std; int main() { char ch_alpha(6) = 'sbc10'; for (int i=0; i<6; i++) { if (isxdigit(ch_alpha(i))) cout << ch_alpha(i) << ' is hexadecimal digit' << endl; else cout << ch_alpha(i) << ' is not hexadecimal digit' << endl; } cout << endl; }
Výkon:
znížiť
Funkčný prototyp: int tolower (int c)
Parametre: c => Znak, ktorý sa má previesť na malé písmená.
Návratová hodnota:
vráti nižší ekvivalent c, inak nezmenený.
Návratová hodnota je int a dá sa implicitne použiť na char.
Popis: Týmto sa daný znak c prevedie na jeho ekvivalent s malými písmenami. Ak pre daný znak nie je prevod možný, vráti sa nezmenená hodnota (c).
Príklad:
#include #include using namespace std; int main() { char ch_alpha(4) = 'STH'; cout< Výkon:
STH prevedené na malé písmená: nič
tuper
Funkčný prototyp: int toupper (int c)
Parametre: c => znak, ktorý sa má previesť na veľké písmená
Návratová hodnota:
vráti horný ekvivalent c, inak nezmenený.
implementácia triedenia bublín c ++
Návratová hodnota je int a dá sa implicitne použiť na char.
Popis: Týmto sa daný znak c prevedie na jeho ekvivalent s veľkými písmenami. Ak pre daný znak nie je možná konverzia, vráti sa nezmenená hodnota (c).
Príklad:
#include #include using namespace std; int main() { char ch_alpha(10) = 'tutorials'; cout< Výkon:
návody prevedené na malé písmená: NÁVODY
Záver
Týmto sa končí náš tutoriál o funkciách znakov v C ++.
V tomto tutoriáli sme videli rôzne funkcie, ktoré zaberajú jeden znak a potom ich buď klasifikujeme, alebo konvertujeme. V našich ďalších tutoriáloch sa budeme zaoberať reťazcom a ich funkciami a triedami súvisiacimi s C ++.
=> Objavte tu jednoduchú sériu školení C ++.
Odporúčané čítanie