Použití Isalpha() a Isdigit() v C/C++: Jak to funguje

Pouziti Isalpha A Isdigit V C C Jak To Funguje



Existuje sada funkcí, které lze volat v C++ při práci s alfanumerickými hodnotami. Tyto funkce zajišťují, že hodnoty nejsou zaměňovány s jiným datovým typem. Tyto funkce jsou isalpha() a isdigit() používané k detekci abecedních a číselných hodnot v řetězci.

Isalpha() v C++

Funkce isalpha() v C++ se používá ke kontrole, zda znak je abeceda nebo ne, ak jeho definici v C++ se používají funkce knihovny hlavičkového souboru. Abecedy definované v tomto souboru záhlaví jsou velká i malá písmena 26 abeced anglického jazyka.







Syntax

Syntaxe funkce isalpha() v C++ je dána takto:



isalfa ( int ch ) ;

Kde ch je znak pod kontrolou.



Návratová hodnota

Když je hodnotou abeceda, pak tato funkce poskytne nenulovou hodnotu, zatímco na druhé straně, pokud to není abeceda, vrátí nulovou hodnotu.





Příklad 1

Níže uvedený kód je jednoduchý program C++, který ilustruje použití funkce isalpha() ke kontrole, zda je hodnota abeceda nebo ne:

#include

#include

použitím jmenný prostor std ;



int hlavní ( ) {



int X = isalfa ( 'dvacet jedna' ) ;



cout << X ;



vrátit se 0 ;

}

Obsahuje hlavičkový soubor cctype, protože obsahuje funkci isalpha(). Spolu s hodnotou znaku je uloženo celé číslo x, aby bylo možné zkontrolovat, zda je abecední nebo ne.



Vstupní znak není abeceda, takže se na výstup vrátí nula.

Příklad 2

Níže uvedený kód je jednoduchý program C++, který ilustruje použití funkce isalpha() v řetězci typu C:

#include

#include

#include



použitím jmenný prostor std ;



int hlavní ( ) {

char tětiva [ ] = 'hum$%^&890qwe@kuidsuidu' ;

int počet = 0 , šek ;



pro ( int i = 0 ; i <= strlen ( tětiva ) ; ++ i ) {



šek = isalfa ( tětiva [ i ] ) ;

-li ( šek )

++ počet ;

}



cout << 'Počet abeced v řetězci: ' << počet << endl ;

cout << 'Počet neabeced v řetězci: ' << strlen ( tětiva ) - počet ;



vrátit se 0 ;

}

V tomto programu jsou deklarovány potřebné hlavičkové soubory. Pro uložení znaků je deklarován řetězec znaků a pro kontrolu počtu abeced v řetězci se používá smyčka for. Pokud se zjistí, že řetězec je abecední, pokračujte ve zvyšování počtu počtů. Na výstupu vrátí počet abeced přítomných v řetězci a také počet neabecedních, který lze zjistit odečtením počtu abeced od celkového počtu znaků v řetězci.

Celkový počet abeced je 15 a neabecedních je 8. Celkový počet znaků řetězce je tedy 23.

Isdigit() v C++

Funkce isdigit() v C++ se používá ke kontrole, zda zadaný znak je jednou z deseti (0-9) desetinných číslic nebo ne. V případě, že je hodnota číselná nebo číslice, vrátí nenulovou hodnotu, jinak vrátí 0, která je definována v hlavičkovém souboru .

Syntax

Toto je syntaxe funkce isdigit() v C++.

dokonce ( int char ) ;

Jako argument bere jediné celé číslo.

Návratová hodnota

Pokud je hodnota číselná nebo číslice, pak tato funkce poskytne nenulovou hodnotu, zatímco na druhé straně, pokud to není číselná hodnota, vrátí nulovou hodnotu.

Příklad 1

Níže uvedený kód je jednoduchý program C++, který ilustruje použití funkce isdigit() v C++:

#include

#include

použitím jmenný prostor std ;



int hlavní ( ) {



int X = dokonce ( '7' ) ;



cout << X ;



vrátit se 0 ;

}

V tomto zdrojovém kódu je definováno celé číslo x pro uložení hodnoty a je volána funkce isdigit(), která tento znak zkontroluje a vrátí výstup. Bylo zjištěno, že znak je číselný, takže vrátí nenulovou hodnotu:

Příklad 2

Tento příklad ilustruje použití funkce isdigit() ke kontrole přítomnosti číslic v řetězci:

#include

#include

#include

použitím jmenný prostor std ;

int hlavní ( ) {

char tětiva [ ] = '45ty67d;' ;

int šek ;



cout << 'Číslice v řetězci jsou:' << endl ;



pro ( int i = 0 ; i < strlen ( tětiva ) ; i ++ ) {



šek = dokonce ( tětiva [ i ] ) ;



-li ( šek )

cout << tětiva [ i ] << endl ;

}



vrátit se 0 ;

}

V tomto zdrojovém kódu jsou definovány potřebné hlavičkové soubory pro spuštění programu. Pro uložení znaku je definován řetězec a cyklus for prochází řetězcem a neustále kontroluje přítomnost číslice na každém místě. Výsledek je uložen v řetězci[i] a čtyři číslice v řetězci jsou nalezeny a vytištěny na výstupu:

Závěr

Existuje sada funkcí, které lze v C++ volat při práci s alfanumerickými hodnotami. Ke kontrole přítomnosti znaku nebo abecedy v C++ se používá tato funkce isalpha(), zatímco funkce isdigit() v C++ se používá ke kontrole, zda je zadaný znak jednou z deseti (0-9) desetinných číslic nebo ne. V případě kladné odpovědi tyto funkce vrátí nenulovou hodnotu, v opačném případě vrátí 0. Obě tyto funkce jsou definovány v hlavičkovém souboru .