На этом шаге мы рассмотрим программу, преобразовывающую строку к нижнему и верхнему регистру.
При помощи строковых итераторов можно преобразовать все символы строки к верхнему или нижнему регистру всего одной командой. Пример:
//--------------------------------------------------------------------------- #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(), которые мы рассмотрим позднее.
На следующем шаге мы приведем еще один пример.