//: C04:StringSeeking.cpp {-bor}{-dmc}
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
// Čtení a zápis do řetězcového proudu
#include <cassert>
#include <sstream>
#include <string>

using namespace std;

int main() {
  string text = "Asi nechytíme žádnou rybičku";
  stringstream ss(text);
  ss.seekp(0, ios::end);
  ss << " až do večera.";
  assert(ss.str() ==
    "Asi nechytíme žádnou rybičku až do večera.");
  // Změnit "chytíme" na "prodáme"
  ss.seekg(6, ios::beg);
  string word;
  ss >> word;
  assert(word == "chytíme");
  ss.seekp(6, ios::beg);
  ss << "prodáme";
  // Změnit "rybičku" na "kašičku"
  ss.seekg(21, ios::beg);
  ss >> word;
  assert(word == "rybičku");
  ss.seekp(21, ios::beg);
  ss << "kašičku";
  assert(ss.str() ==
    "Asi neprodáme žádnou kašičku až do večera.");
  ss.str("Kůň s jinou barvou.");
  assert(ss.str() == "Kůň s jinou barvou.");
} ///:~