přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Knižnica cctype (1)

IT Systems - Alza Media (Publero)

Programovanie v jazyku C++: Knižnica cctype (1)

C++

V tomto článku si prvý krát ukážeme knižnicu cctype , ktorá nám umožní manipulovať zo znakmi. Knižnica je využiteľná všade tam, kde chcete meniť charakter znakov, napríklad zmeniť malé písmeno (znak) na veľké. V prvom dieli mini série o knižnici cctype si ukážeme testovanie veľkostí znakov. Pôjde o funkcie islower a isupper . 


reklama

Test veľkostí znakov

Najprv než dôjdeme k funkciam, ktoré nám umožnia meniť veľkosť písmen, bude sa nám hodiť test na odlíšenie veľkostí znakov. Keď zistíme túto informáciu, až tak môžme navoliť funkcie na zmenu veľkostí. Takýto test budete potrebovať všade tam, kedy neviete odhadnúť, aké veľké sú znaky napr. pri uživateľsky zadaných reťazcoch.

Na test veľkostí znakov slúžia funkcie islower a isupper. Prvá menovaná funkcia testuje, či znak je malý a druhá či veľký.

1. príklad: Testujeme veľkosť písmen

#include <iostream>   // hlavičkové súbory
#include <cctype>

using namespace std;   // priestor mien

int main()   //hlavná funkcia main
{
    char znak1 = 'k';   // tento znak budeme testovať 

    if (!islower(znak1))   // testujeme
        cout << "Znak " << znak1 << " je velke pismeno!\n";

    if (!isupper(znak1))
        cout << "Znak " << znak1 << " je male pismeno!\n";

    char znak2 = 'R';

    if (!islower(znak2))
        cout << "Znak " << znak2 << " je velke pismeno!\n";

    if (!isupper(znak2))
        cout << "Znak " << znak2 << " je male pismeno!\n";

    return 0;   // koniec programu 
}

Výsledok programu:

Znak k je male pismeno!
Znak R je velke pismeno!

2. príklad: Testujeme v reťazcoch veľkosť písmen

#include <iostream>   // hlavickové súbory
#include <cctype>

using namespace std;   // priestor mien

int main()   // hlavná funkcia main
{
    cout << "Tak najprv testneme nami navoleny retazec a potom zvolite vlastny retazec! \n";

    string retazec = "Galaxia Andromeda";   // náš zvolený reťazec

    cout << "Nas zvoleny retazec je: " << retazec;

    int pocitadloM = 0;   //počitanie malých a veľkých znakov 
    int pocitadloV = 0;

    for (size_t i = 0; i < retazec.size(); i++)   // cyklus, ktory preverí každý znak v reťazci
    {
        if (islower(retazec[i]))   // testujeme
            pocitadloM++;

        if (!islower(retazec[i]))
            pocitadloV++;
    }

    cout << "\nV retazci " << retazec << " je " << pocitadloM << " malych znakov a " << pocitadloV << " velkych znakov.\n\n";
    cout << "Ok zadajte teraz vy retazec!\n";

    string retazec1;

    cin >> retazec1;    // užívateľ zadá reťazec

    if (retazec1.empty())
    {
        cout << "Och chyba! Koncim!\n";
        return 0;
    }

    pocitadloM = 0;   // samozrejme musíme vynulovať doterajšie štatistiky
    pocitadloV = 0;
    cout << "Vas zvoleny retazec: " << retazec1 << "\n";

    for (size_t i = 0; i < retazec1.size(); i++)
    {
        if(!isupper(retazec1[i]))   // testujeme
            pocitadloM++;

        if(isupper(retazec1[i]))
            pocitadloV++;
    }

    cout << "V retazci " << retazec1 << " su " << pocitadloM << " male znaky a " << pocitadloV << " velke znaky.\n";

    return 0;   // koniec programu
}

Výsledok programu:

Tak najprv testneme navoleny retazec a potom zvolite vlastny retazec!
Nas zvoleny retazec je: Galaxia Andromeda
V retazci Galaxia Andromeda je 14 malych znakov a 3 velkych znakov.

Ok zadajte teraz vy retazec!
slnIeckO
Vas zvoleny retazec: slnIeckO
V retazci slnIeckO su 6 male znaky a 2 velke znaky.

Rozbor programu:

Takže použili sme tesť veľkostí znakov v reťazcoch. Všetko sa zdá v poriadku až na jednú vec. Tam, kde testujeme vlastný reťazec, nám našlo 3 veľké znaky miesto zjavných dvoch. Je to preto, že medzeru určí ako veľký znak. Túto chybičku vieme skorigovať, ale o tom neskôr.

Nahoru

(Jako ve škole)
Průměr: 2,00 | Hodnotilo: 4
 

Top články z OpenOffice.cz

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 23 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity
  • Hodnocení autora: *


Soutěž - monitor Philips 24"

Public Relations

Využijte letní akce na předplatné časopisu IT Systems!

Nenechte si ujít příležitost dostávat pravidelně informace ze světa podnikové informatiky a předplaťte si časopis IT Systems. Udržujte si přehled v oboru a získejte inspiraci, jak využít informační technologie pro vaši firmu nebo organizaci. K pořízení nebo obnovení předplatného IT Systems je nyní ideální příležitost. Právě totiž probíhá letní akce, v rámci níž je možno získat roční předplatné jen za 599 Kč.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 28. únor

Lollypop


Pavel Fric

Pavel Fric, 29. listopad

Palapeli


Pavel Fric

Pavel Fric, 19. listopad

Amarok


Všechny blogy »