Arduino simbolių valdymas
Visi duomenys į kompiuterius įvedami kaip simboliai, kuriuos sudaro raidės, skaitmenys ir įvairūs specialūs simboliai. Šiame skyriuje aptarsime C++ mums teikiamas galimybes tirti ir valdyti atskirus simbolius.
Tam kad galėtume pasiekti mums reikiamas funkcijas privalome į programos antraštę įterpti <cctype> biblioteką. Ši biblioteka turi platų funkcijų pasirinkimą kurios padės manipuliuojant simboliais.
int isdigit( int c ) – funkcija tikrina ar argumentas yra skaičius, jei pateikiamas skaičius funkcija grąžina 1 reikšmę, jei ne – 0.
int isalpha( int c ) - funkcija tikrina ar argumentas yra raidė, jei pateikiama raidė funkcija grąžina 1 reikšmę, jei ne – 0.
int isalnum( int c ) - funkcija tikrina ar argumentas yra raidė arba skaičius, jei pateikiama raidė arba skaičius funkcija grąžina 1 reikšmę, kitais atvejais – 0.
int isxdigit( int c ) - funkcija tikrina ar argumentas yra šešioliktainis skaičius, jei pateikiamas šešioliktainis skaičius funkcija grąžina 1 reikšmę, kitais atvejais – 0.
int islower( int c ) - funkcija tikrina ar argumentas yra mažoji raidė, jei pateikiama mažoji raidė funkcija grąžina 1 reikšmę, jei ne – 0.
int isupper( int c ) - funkcija tikrina ar argumentas yra didžioji raidė, jei pateikiama didžioji raidė funkcija grąžina 1 reikšmę, jei ne – 0.
int isspace( int c ) - funkcija grąžina 1 reikšmę jei argumentas yra viena iš šių reikšmių: '\n', ' ', '\f', '\r', '\t', '\v', visais kitais atvejais grąžinama vertė lygi 0.
int ispunct( int c ) - funkcija tikrina ar argumentas yra spausdinamas simbolis, jei pateikiamas spausdinamas simbolis kuris nėra nei tuščias tarpas, nei skaičius, nei raidė funkcija grąžina 1 reikšmę, jei ne – 0.
int isprint( int c ) - funkcija tikrina ar argumentas yra spausdinamas simbolis kuriame yra tuščias tarpas ' ', jei pateikiamas toks simbolis funkcija grąžina 1 reikšmę, kitais atvejais – 0.
int isgraph( int c ) - funkcija tikrina ar argumentas yra bet koks simbolis išskyrus tuščią tarpą ' ', jei pateikiamas toks simbolis funkcija grąžina 1 reikšmę, kitais atvejais – 0.
Žemiau esančiame pavyzdyje parodoma kaip, naudotis šiomis funkcijomis, tačiau atkreipkite dėmesį, kad funkcijos naudojamos sutrumpintuose if sąlygos sakiniuose.
void setup () {
Serial.begin (9600);
Serial.print ("According to isdigit:\r");
Serial.print (isdigit( '8' ) ? "8 is a": "8 is not a");
Serial.print (" digit\r" );
Serial.print (isdigit( '8' ) ?"# is a": "# is not a") ;
Serial.print (" digit\r");
Serial.print ("\rAccording to isalpha:\r" );
Serial.print (isalpha('A' ) ?"A is a": "A is not a");
Serial.print (" letter\r");
Serial.print (isalpha('A' ) ?"b is a": "b is not a");
Serial.print (" letter\r");
Serial.print (isalpha('A') ?"& is a": "& is not a");
Serial.print (" letter\r");
Serial.print (isalpha( 'A' ) ?"4 is a":"4 is not a");
Serial.print (" letter\r");
Serial.print ("\rAccording to isalnum:\r");
Serial.print (isalnum( 'A' ) ?"A is a" : "A is not a" );
Serial.print (" digit or a letter\r" );
Serial.print (isalnum( '8' ) ?"8 is a" : "8 is not a" ) ;
Serial.print (" digit or a letter\r");
Serial.print (isalnum( '#' ) ?"# is a" : "# is not a" );
Serial.print (" digit or a letter\r");
Serial.print ("\rAccording to isxdigit:\r");
Serial.print (isxdigit( 'F' ) ?"F is a" : "F is not a" );
Serial.print (" hexadecimal digit\r" );
Serial.print (isxdigit( 'J' ) ?"J is a" : "J is not a" ) ;
Serial.print (" hexadecimal digit\r" );
Serial.print (isxdigit( '7' ) ?"7 is a" : "7 is not a" ) ;
Serial.print (" hexadecimal digit\r" );
Serial.print (isxdigit( '$' ) ? "$ is a" : "$ is not a" );
Serial.print (" hexadecimal digit\r" );
Serial.print (isxdigit( 'f' ) ? “f is a" : "f is not a");
}
void loop () { }