Funkcija isgraph C programavimo kalboje

Skaitymo trukmė: 2 minutės

Naudodami C programavimo kalbą, mes galime lengvai nustatyti ar simbolis gali būti grafiškai atvaizduotas. Šiam tikslui standartinėje C bibliotekoje yra aprašyta isgraph funkcija. Šiame straipsnyje mes atidžiau peržvelgsime šią funkciją.

Funkcijos isgraph struktūra:

Funkcijos prototipas: int isgraph(int c);

Gražinama reikšmė: sveikasis skaičius nelygus nuliui, jeigu gautas parametras gali būti grafiškai atvaizduotas. Kitu atveju grąžinamas 0.

Parametrų sąrašas:
(int c) - sveikasis skaičius, kuris yra tikrinamas. Nuo šio skaičiaus priklauso galutinis rezultatas

Antraščių failas: <ctype.h>.

1. Funckijos isgraph ir jos taikymas.

Funkcija isgraph C programavimo kalboje leidžia nustatyti ar gautas simbolis gali būti grafiškai atvaizduotas. Grafiškai vaizduotinas simbolis, savo ruožtu, yra toks simbolis, kuris gali būti matomas ekrane. Jeigu mes perduodame grafiškai atvaizduotiną simbolį isgraph funkcijai, tada iš šios funkcijos sugrįžta teigiama sveikojo skaičiaus reikšmė.

Jeigu jau spėjote atkreipti dėmesį į 'Funkcijos isgraph struktūra' lentelę viršuje, tada jau žinote, jog iš isgraph funkcijos sugrįžtanti reikšmė lygi nuliui žymi, jog funkcijai perduotas simoblis negali buti grafiškai atvaizduotas.

O jeigu jau esate susipažinę su kitomis bibliotekos ctype.h funkcijomis, tada galimai iškilo klausimas, kuo isgraph funkcija skiriasi nuo isprint funkcijos. Atsakymas yra gana paprastas, šios funkcijos grąžina skirtingą reikšmę tik tada, kai joms yra perduodamas tarpo simbolis, kurio ASCII reikšmė yra 32. Iš funkcijos isgraph grąžinamas 0, o iš isprint funkcijos sugrįžta nuliui nelygi reikšmė, kadangi tarpo simbolis gali būti atspausdinamas, bet negali būti matomas.

Naudinga žinoti: visi simboliai, kurių ASCII reikšmės yra nuo 33 iki 126 gali būti matomi ekranuose.

Pavyzdys 1: funkcijos isgraph naudojimas C programavime.

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

int main( void )
{
    
printf ( "1. %d\n", isgraph ( 'a' ));
    
printf ( "2. %d", isgraph ( 10 ));
    
return ( 0 );
}

Galimas rezultatas:

1. 1
2. 0

2. Funkcijos isgraph perrašymas.

Pažvelkite keletai sekundžių į kodo pavyzdį žemiau.

Pavyzdys 2: C kalba perrašyta isgraph funkcija

int nauja_isgraph ( int c )
{
    
if ( c >= 33 && c <= 126 )
        
return ( 1 );
    
return ( 0 );
}

Funkcija nauja_isgraph priima vieną int parametrą. Tiesa šiai funkcijai taip pat galime perduoti ir simbolių char reikšmes, kadangi C programa char reikšmes pakeičia į int atitikmenis.

Tada mūsų parašytoje nauja_isgraph funkcijoje tikrinama, ar gauto simbolio sveikojo skaičiaus reikšmė yra tarp 33-ų ir 126-ių (3-čia eilutė). Tokiu atveju grąžinamas skaičius 1, kitu atveju sugrįžta reikšmė lygi nuliui, kuri parodo, jog funkcijai perduotas simbolis negali būti matomas kompiuterių ekranuose.

3. Perrašytos isgraph funkcijos testavimas

Mes galime patikrinti, ar perrašytos isgraph funkcijos funkcionalumas yra tikslus, perduodami nauja_isgraph ir isgraph funkcijoms identiškas reikšmes ir tikrindami rezultatus. Tai galite matyti trečiame pavyzdyje

Pavyzdys 3: funkcijų isgraph ir nauja_isgraph testavimas

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

int nauja_isgraph ( int c )
{
    
if ( c >= 33 && c <= 126 )
        
return ( 1 );
    
return ( 0 );
}
int main( void )
{
    
printf ( "1. nauja_isgraph: %d, isgraph: %d\n" , nauja_isgraph ( ' ' ), isgraph ( ' ' ));
    
printf ( "2. nauja_isgraph: %d, isgraph: %d\n" , nauja_isgraph ( 120 ), isgraph ( 120 ));
    
return ( 0 );
}

Galimas rezultatas:

1. nauja_isgraph: 0, isgraph: 0
2. nauja_isgraph: 1, isgraph: 1

Naudinga žinoti: skirtingų operacinių sistemų kompiliatoriai gali grąžinti skirtingas teigiamas sveikojo skaičiaus reikšmes, jeigu isgraph funkcijai yra perduodamas grafiškai vaizduotinas simbolis.

3. Žinių patikrinimas

Funkcija isgraph C programavimo kalboje

1Koks yra isgraph('u') rezultatas?

2Kurioje C kalbos bibliotekoje yra aprašyta isgraph funkcija?

2Koks yra isgraph(100) rezultatas?

Žinių patikrinimas baigtas!

Sveikiname!

Pasidalinkite savo geru rezultatu!