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

Linux E X P R E S, Programovanie v jazyku C++: Knižnica string – funkcie back, front a push_back

Cimatron

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!

Nahoru

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



 
 

Top články z OpenOffice.cz

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 25 rokov. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity



Public Relations

Domény a nepřeberné množství internetových adres s možností jejich zneužití

dnnsecNepropásněte sérii webinářů zaměřených na aktuální bezpečnostní trendy a jednotnou správu zabezpečení vaše IT – každé pondělí a zdarma.
S doménami přijde do kontaktu naprosto každý uživatel internetu, ačkoliv si to asi neuvědomuje. Už jenom samotné hledání na internetu je spojené s doménami, o nakupování v internetových obchodech ani nemluvě. Věděli jste však, že domény mohou být poměrně jednoduše napadeny?

Pokračování ...


SOPHOS - hacking webinar 2

Public Relations

Vyplatí se investice do SEO agentury?

QNAPObjevili jste zajímavý sortiment zboží, po kterém je na trhu poptávka. Čekala vás dlouhá práce, ale byli jste úspěšní a spustili e-shop. Veškeré zboží má perfektně zpracované fotografie a dokonalý popis. Vše je přehledné, jednoduché na ovládání a s poutavou grafikou. Proč u vás nikdo nenakupuje? Proč navštěvují konkurenční stránky, kde mají vyšší cenu, a dokonce řadu chyb v textu? Nejspíš proto, že vás zákazníci nemají kde najít. Nejste na svém trhu přítomni.

Pokračování ...


Redakční blog

Pavel Fric

Pavel Fric, 21. srpen

Sayonara Player 1.5.1

Přehrávač, jak má být. Poslední dobou vývoj šlape


Pavel Fric

Pavel Fric, 26. leden

MuseScore 3

První aktualizace třetí řady notačního editoru MuseScore


Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Všechny blogy »

SOPHOS - hacking webinar 2