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

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

    При помощи строковых итераторов можно преобразовать все символы строки к верхнему или нижнему регистру всего одной командой. Пример:

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

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

#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[])
{
  // Создание строки
  string s("The zip code of Hondelage in Germany is 38108");
  cout << ToRus("Исходная строка:\n") << s << endl;

  // Преобразование всех символов к нижнему регистру
  transform (s.begin(), s.end(),    // Источник
             s.begin(),             // Приемник
             tolower);              // Операция
  cout << ToRus("Строка, преобразованная к нижнему регистру:\n");
  cout << s << endl;

  // Преобразование всех символов к верхнему регистру
  transform (s.begin(), s.end(),    // Источник
             s.begin(),             // Приемник
             toupper);              // Операция
  cout << ToRus("Строка, преобразованная к верхнему регистру:\n");
  cout << s << endl;


  getch();
  return 0;
}

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

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


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

    Обратите внимание на устаревшие функции tolower() и toupper() языка С, использующие универсальный локальный контекст. При работе с другими локальными контекстами следует задействовать новые формы функций tolower() и toupper(), которые мы рассмотрим позднее.

    На следующем шаге мы приведем еще один пример.




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