c character classification
Tento kurz vysvětluje příklady a transformační funkce jazyka C ++ s příklady. Mezi důležité důležité funkce patří isdigit, islower, isupper, isalpha atd .:
V našem předchozím tutoriálu o „knihovnických funkcích“ jsme viděli různé záhlaví, která poskytují četné funkce, které fungují na různých datových typech. Záhlaví je jedno takové záhlaví, které obsahuje sadu funkcí, které klasifikují a manipulují s jednotlivými znaky.
=> Navštivte zde a dozvíte se C ++ od nuly.
Funkce deklarované v záhlaví, vezměte jeden znak (ekvivalent int) jako parametr a vraťte celočíselnou hodnotu, která může být buď logická hodnota, nebo znaková hodnota. Hodnota 0 (nula) označuje hodnotu false, zatímco jiná hodnota než 0 (nenulová) označuje hodnotu true.
Tyto jednoznakové funkce lze v programu použít zahrnutím záhlaví. Tyto funkce jsou široce používány a přijímány a jsou extrémně užitečné v programování C ++ pro testování a transformaci nebo manipulaci se znaky.
V tomto tutoriálu probereme různé znakové funkce a uvidíme, jak lze každou z těchto funkcí použít v programu.
Co se naučíte:
Funkce znaků C ++
Znakové funkce C ++ jsou funkce, které berou jako parametr pouze jeden znak (přetypovaný na int) a vrátí výsledek. Mohou to být klasifikační funkce jako isalpha, isalnum, isdigit, islower, isupper atd., Abychom jmenovali alespoň některé, a transformační funkce jako toupper a tolower, které transformují daný znak na velká nebo malá písmena.
V záhlaví máme definovány dva typy funkcí, jak je uvedeno níže.
(i) Funkce klasifikace znaků
Funkce klasifikace znaků se používají ke kontrole, zda jediný znak předaný jako argument funkci patří do určité kategorie.
Tabulkovali jsme funkce klasifikace znaků obsažené v záhlaví níže:
Nedělej | Název funkce | Funkce Účel |
---|---|---|
7 | nižší | Zkontroluje, zda je daný znak malými písmeny |
1 | isalnum | Zkontroluje, zda je daný znak alfanumerický |
dva | isalfa | Zkontroluje, zda je znak abecední |
3 | je prázdné | Zkontroluje, zda je znak prázdný |
4 | iscntrl | Zkontroluje, zda je daný znak kontrolním znakem |
5 | je číslice | Zkontroluje, zda je daný znak desetinnou číslicí |
6 | isgraph | Zkontroluje, zda má daný znak grafické znázornění |
8 | tisk | Zkontroluje, zda je znakem znak, který lze tisknout |
9 | jepunkční | Zkontroluje, zda je znak interpunkčním znakem |
10 | isspace | Zkontroluje, zda je znak prázdné místo |
jedenáct | je nahoře | Zkontroluje, zda je daný znak velkými písmeny |
12 | isxdigit | Zkontroluje, zda je hexadecimální číslice znaku |
(ii) Funkce transformace znaků
Funkce transformující znaky se převádějí mezi případy. V souboru jsou zahrnuty následující funkce.
Nedělej | Název funkce | Účel funkce |
---|---|---|
1 | snížit | Převede velká písmena na malá písmena |
dva | toupper | Převede malá písmena na velká |
Podívejme se podrobně na každou z funkcí znaků (klasifikace a transformace). Představíme také jednoduchý příklad programování v C ++ pro každou z funkcí.
Isalnum
Funkční prototyp: int isalnum (int c);
Parametry: c => Znak, který by měl být zkontrolován, zda je alfanumerický nebo ne
Návratová hodnota:
nenulová => c je alfanumerický
0 => c není alfanumerický
Popis: Tato funkce kontroluje, zda je daný znak c alfanumerický nebo ne. Podle alfanumerických znaků to znamená, že znak je mezi A (a) -Z (z) nebo 0 až 9.
V C ++ je tato funkce specifická pro národní prostředí a její definice je uvedena v záhlaví.
Pří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ýstup:
Isalpha
Funkční prototyp: int isalpha (int c);
Parametry: c-> Znak, který má být zkontrolován, zda je abecední nebo ne.
Návratová hodnota:
nenulová => c je abecední
0 => není abecední
Popis: Tato funkce kontroluje, zda je daný znak c abecedním znakem, tj. Mezi malými a velkými písmeny. Stejně jako isalnum i tato funkce závisí na národním prostředí, které používáme.
Pří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ýstup:
Isblank
Funkční prototyp: int isblank (int c);
Parametry: c => Znak, který má být zkontrolován.
Návratová hodnota:
nenulová => znak je prázdný
0 => znak není prázdný
Popis: Tato funkce kontroluje, zda je daný znak prázdný nebo ne. Prázdný znak je znak mezery, který se používá k oddělení slov v řádku textu.
V C ++ existuje verze isblank funkce specifické pro národní prostředí.
Pří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ýstup:
Všimněte si posledního řádku výstupu, který říká „není prázdný“. Důvodem je poslední pozice pole znaků, která není inicializována na hodnotu, ale stále má pozici tisku. Není to tedy prázdné místo.
Iscntrl
Funkční prototyp: int iscntrl (int c);
Parametry: c => Znak, který se má zkontrolovat
Návratová hodnota:
nenulová => c je kontrolní znak
0 => c není kontrolní znak
Popis: Funkce kontroluje, zda je daný parametr řídícím znakem. Řídicí znak je znak, který se nezobrazí na displeji nebo nezabírá tiskovou pozici.
Pří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ýstup:
Isdigit
Funkční prototyp: int isdigit (int c)
Parametry: c => Znak vržený na int, jehož hodnotu je třeba zkontrolovat.
Návratová hodnota: nenulová => c je desetinná číslice
0 => c není číslice
Popis: Tato funkce kontroluje, zda je daný parametr desetinná číslice nebo ne. Znak je desetinná číslice, pokud je její hodnota mezi 0 a 9.
Pří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ýstup:
Isgraph
Funkční prototyp: int isgraph (int c)
Parametry: c => Postavený znak int, který je kontrolován pomocí funkce isgraph
Návratová hodnota:
nenulová => c je grafické znázornění
0 => c není grafické znázornění
Popis: Funkce ověří, zda daný znak c je znak s grafickým znázorněním. Znak, který lze vytisknout, je znak s grafickým znázorněním.
Pří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ýstup:
Islower
Funkční prototyp: int islower (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce islower.
Návratová hodnota:
non-zer0 => c je malá písmena
0 => c není malá
Popis: Funkce islower kontroluje, zda je daný znak c malými písmeny nebo ne.
Malý znak je ten, který má jednu z hodnot: 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ří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ýstup:
Tisk
Funkční prototyp: int sprint (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce isprint.
Návratová hodnota:
non-zer0 => c lze tisknout
0 => c nelze tisknout
Popis: Funkce isprint zkontroluje, zda je daný znak tisknutelný. Tisknutelný znak je ten, který zaujímá tiskovou pozici na displeji.
Pří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ýstup:
Ispunct
Funkční prototyp: int ispunct (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce ispunct.
Návratová hodnota:
non-zer0 => c je interpunkční znak
0 => c není interpunkční znak
Popis: Tato funkce kontroluje, zda je daný znak interpunkčním znakem. Znak, který je grafickým znakem (z isgraph) a nikoli alfanumerickým znakem (z isalnum), se považuje za interpunkční znak.
Pří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ýstup:
Isspace
Funkční prototyp: int isspace (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce isspace.
Návratová hodnota:
non-zer0 => c je prázdné místo
0 => c není prázdné místo
Popis: Tato funkce kontroluje, zda je daný znak prázdné místo. Pro národní prostředí „C“ jsou znaky mezer kterékoli z následujících.
Pří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ýstup:
Isupper
Funkční prototyp: int isupper (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce isupper.
Návratová hodnota:
non-zer0 => c je velká písmena
0 => c není velká písmena
Popis: Funkce islower kontroluje, zda je daný znak c velkými písmeny nebo ne.
Velké písmeno je znak, který má jednu z hodnot: 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ří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ýstup:
Isxdigit
Funkční prototyp: int isxdigit (int c)
Parametry: c => Znak, který má být zkontrolován pomocí funkce isxdigit.
Návratová hodnota:
non-zer0 => c je hexadecimální
0 => c není hexadecimální
Popis: Tato funkce kontroluje, zda je daný znak hexadecimální číslice. Platné hexadecimální číslice jsou 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
Pří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ýstup:
snížit
Funkční prototyp: int tolower (int c)
Parametry: c => Znak, který má být převeden na malá písmena.
Návratová hodnota:
vrací nižší ekvivalent c, jinak beze změny.
Návratová hodnota je int a lze ji implicitně vrhnout na char.
Popis: Tím se daný znak c převede na jeho ekvivalent s malými písmeny. Pokud převod není pro daný znak možný, vrátí se nezměněná hodnota (c).
Příklad:
#include #include using namespace std; int main() { char ch_alpha(4) = 'STH'; cout< Výstup:
STH převedeno na malá písmena: něco
toupper
Funkční prototyp: int toupper (int c)
Parametry: c => znak, který má být převeden na velká písmena
Návratová hodnota:
vrací horní ekvivalent c, jinak beze změny.
jak otevřít SWF s Adobe Flash Player
Návratová hodnota je int a lze ji implicitně vrhnout na char.
Popis: Tím se daný znak c převede na jeho ekvivalent s velkými písmeny. Pokud není pro daný znak možný převod, vrátí se nezměněná hodnota (c).
Příklad:
#include #include using namespace std; int main() { char ch_alpha(10) = 'tutorials'; cout< Výstup:
výukové programy převedené na malá písmena: NÁVODY
Závěr
Tím končí náš tutoriál o funkcích znaků v C ++.
V tomto kurzu jsme viděli různé funkce, které berou jeden znak a pak je buď klasifikujeme, nebo převedeme. V našich dalších výukách budeme diskutovat o řetězcích a jejich funkcích a třídách souvisejících s C ++.
=> Objevte zde jednoduchou sérii školení C ++.
Doporučené čtení