Spojování textu

Operátor + umí také spojovat texty typu std::string. Výsledkem je nový text, který můžete uložit do proměnné nebo vypsat:

std::string jmeno = "Jana";
std::string prijmeni = "Nováková";
std::string celeJmeno = jmeno + " " + prijmeni;
std::cout << celeJmeno << "\n";

Vypíše:

Jana Nováková

Stejně jako << ani + nepřidává mezery. Proto je mezi jménem a příjmením " ", text, který obsahuje jen mezeru. Bez něj by vzniklo JanaNováková.

Pomocí += připojíte text na konec proměnné:

std::string zprava = "Ahoj";
zprava += ", Jano";
zprava += "!";
std::cout << zprava << "\n";

Vypíše:

Ahoj, Jano!

Typické chyby:

  • Dva texty v uvozovkách pomocí + nespojíte. std::string pozdrav = "Ahoj, " + "Jano"; skončí chybou invalid operands to binary expression ('const char[7]' and 'const char[5]'). Text v uvozovkách sám o sobě není std::string a + s ním neumí pracovat. Aspoň jedna strana + proto musí být typu std::string, třeba proměnná: jmeno + "!" funguje.
  • + nepřevádí čísla na text. Když je body typu int, "Body: " + body se sice přeloží, ale vypíše nesmysl, třeba kus jiného textu z paměti. A jmeno + body skončí chybou invalid operands to binary expression. Čísla s textem proto vypisujte pomocí <<: std::cout << "Body: " << body;

Pokyny

Vytvořte proměnnou celeJmeno typu std::string: pomocí + spojte jmeno, mezeru a prijmeni.

Vypište celeJmeno. Program by měl vypsat Ivo Novák.

Pod to vytvořte proměnnou pozdrav s hodnotou "Ahoj, " a pomocí += k ní připojte jmeno.

Připojte k proměnné pozdrav ještě vykřičník a vypište ji na další řádek. Program by měl vypsat:

Ivo Novák
Ahoj, Ivo!

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

8/9