Шаг 384.
Библиотека STL.
Строки. Примеры использования итераторов со строками (продолжение)

    На этом шаге мы рассмотрим еще один пример, иллюстрирующий использование итераторов при работе со строками.

    В следующей программе приводятся другие примеры строковых операций с применением итераторов:

//---------------------------------------------------------------------------

#include <vcl.h>
#include <string>
#include <iostream>
#include <algorithm>

#include <conio.h>   //необходимо для getch()

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
using namespace std;

std::string ToRus(const std::string &in)
{
  char *buff = new char [in.length()+1];
  CharToOem(in.c_str(),buff);
  std::string out(buff);
  delete [] buff;
  return out;
}


int main (int argc, char* argv[])
{

  // Создание константной строки
  const string hello("Hello, how are you?");
  cout << ToRus("Константная строка:\n") << hello << endl;

  // Инициализация строки s всеми символами строки hello
  string s(hello.begin(),hello.end());

  // Перебор всех символов
  cout << ToRus("Строка s:\n");
  string::iterator pos;
  for (pos = s.begin(); pos != s.end(); ++pos) {
      cout << *pos;
  }
  cout << endl;

  // Перестановка символов строки в обратном порядке
  reverse (s.begin(), s.end());
  cout << ToRus("Перестановка символов строки в обратном порядке:\n")
       << s << endl;

  // Сортировка всех символов строки
  sort (s.begin(), s.end());
  cout << ToRus("Отсортированная строка:\n")
       << s << endl;

  // Удаление смежных дубликатов
  //  - unique() изменяет очередность символов и возвращает новый конец
  //  - erase() удаляет лишние символы
  s.erase (unique(s.begin(),
                  s.end()),
           s.end());
  cout << ToRus("Строка без дубликатов:\n")
       << s << endl;


  getch();
  return 0;
}

//---------------------------------------------------------------------------
Текст этого примера можно взять здесь.

    Результат выполнения программы выглядит так:


Рис.1. Результат работы приложения

    На следующем шаге мы приведем последний пример, иллюстрирующий использование итераторов при работе со строками.




Предыдущий шаг Содержание Следующий шаг