Linux E X P R E S

Facebook

Programovanie v jazyku C++: Knižnica string – funkcie back, front a push_back

cplusplus.png

Ďalšia časť o knižnici string a jej podporovaných funkciách. Tentoraz sa pozrieme na funkcie back, front a push_back .


Funkcia back

Funkcia back vráti referenciu resp. odkaz na znak, ktorý je posledný v reťazci. Samozrejme, posledným znakom sa nemyslí ukončovací znak \0. Funkcia back nepodporuje žiadne argumenty.

1. príklad: Testujeme funkciu back

#include 
#include 
using namespace std;
int main()
{
    string retazec1 = "Neviete o nejakej rastline, ktora ma liecive ucinky?";
    cout << retazec1.back() << "\n";
    string retazec2 = "Viva la France, good land";
    cout << retazec2.back() << "\n";
    string retazec3 = "Bez ropy dnesny svet neprezije!";
    cout << retazec3.back() << "\n";
    return 0;
}

Výsledok programu:

?
d
!

Predstavme si, že chceme rýchlo zmeniť posledný znak za iný znak. Ukážeme si to v druhom príklade.

2. príklad: Meníme posledný znak za iný znak

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string retazec1 = "Neviete o nejakej rastline, ktora ma liecive ucinky.";
    if(retazec1.back() != '?')
        retazec1.back() = '?';
    cout << retazec1 << "\n";
    if(retazec1.back() == '?')
        retazec1.back() = '.';
    cout << retazec1 << "\n";
    if(retazec1.back())    //ak je posledným znakom hocičo
        retazec1.back() = '!';
    cout << retazec1 << "\n";
    return 0;
}

Výsledok programu:

Neviete o nejakej rastline, ktora ma liecive ucinky?
Neviete o nejakej rastline, ktora ma liecive ucinky.
Neviete o nejakej rastline, ktora ma liecive ucinky!

Funkcia front

Funkcia front vracia prvý znak v reťazci. Rovnako ako funkcia back nepodporuje argumenty.

3. príklad: Testujeme funkciu front

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string retazec1 = "Povedz mi, co ty vies o svete?";
    cout << retazec1.front() << "\n";
    string retazec2 = "Och lasko, este ze ta mam!";
    cout << retazec2.front() << "\n";
    string retazec3 = "Kocko, pod sa hrat!";
    cout << retazec3.front() << "\n";
    return 0;
}

Výsledok programu:

P
O
K

4. príklad: Meníme prvý znak za iný znak

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string retazec1 = "Rozum? Co to je?";
    if(retazec1.front() != 'V')
        retazec1.front() = 'X';
    cout << retazec1 << "\n";
    if(retazec1.front() == 'X')
        retazec1.front() = 'K';
    cout << retazec1 << "\n";
    if(retazec1.front())
        retazec1.front() = 'O';
    cout << retazec1 << "\n";
    return 0;
}

Výsledok programu:

Xozum? Co to je?
Kozum? Co to je?
Oozum? Co to je?

Funkcia push_back

Funkcia push_back pripojí znak definovaný ako argument do posledného miesta v reťazci. Stane sa tak znak posledným v reťazci. Samozrejme, zvýši sa size o +1.

5. príklad: Testujeme funkciu push_back

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string retazec1 = "Vytvoril som program simulujuci kolonizaciu Marsu";
    cout << retazec1 << "\n";
    cout << "Ejj vidim chybicku! Kedze je to oznamovacia veta, tak na konci vety davame bodku!\n";
    retazec1.push_back('.');
    cout << retazec1;
    return 0;
}

Výsledok programu:

Vytvoril som program simulujuci kolonizaciu Marsu
Ejj vidim chybicku! Kedze je to oznamovacia veta, tak na konci vety davame bodku!
Vytvoril som program simulujuci kolonizaciu Marsu.

6. príklad: Zopakovanie si funkcie push_back

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string retazec1 = "Treba sa snazit v zivote, ak chcete nieco dosiahnut";
    if(retazec1.back() != '!')
        retazec1.push_back('!');
    cout << retazec1 << "\n";

    string retazec2 = "Najlepsia hra je Euro Truck Simulator 1";
    if(retazec2.back() != '2')
    {
        retazec2.erase(retazec2.size()-1);
        retazec2.push_back('2');
        retazec2.push_back('!');
    }
    cout << retazec2 << "\n";
    return 0;
}

Výsledok programu:

Treba sa snazit v zivote, ak chcete nieco dosiahnut!
Najlepsia hra je Euro Truck Simulator 2!

Diskuze (0) Nahoru