Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Ishodniki.Ru » Online книги » C++ Builder по шагам

Шаг 9 - Строковые классы [AnsiString, char*, WideString]

Я думаю, что в любой программе подобные штуки нужны. Вообще на строки C++ Builder богат - тут и собственные массивы, и свистнутый у Delphi AnsiString, и UNICODE WideString, и даже из STL есть класс. Так что есть из чего выбрать. Но я перечислю по порядку.

AnsiString

Также называемый просто String (для удобства записи определен через typedef). Основной строковый класс VCL. Используется почти везде, где нужно представить текст. На мой взгляд, самый удобный класс - много хороших методов, хорошая совместимость, объектный конструктор переваривает типы от char* до double. Как я сказал, методов много, даже чересчур. Перечислю главные:

  • с_str() - возвращает указатель на массив NULL-terminated string, содержащий ту же информацию, что и исходная строка. Используется для WinAPI обращений.
  • data() - то же самое, что и предыдущий, только при пустой строке возвращает не "", а NULL. Иногда это бывает удобно.
  • CurrToStr(), CurrToStrF() - перевод типа TCurrency в строку.
  • FloatToStrF() - форматированный перевод из плавающего числа в строку.
  • IntToHex() - перевод шестнадцатеричного числа. Второй параметр - минимальное число цифр.
  • ToInt(), ToDouble(), ToIntDef() - возвращает соответственно int, double, default int.
  • Delete(), SubString() - соответственно удаление символов и копирование подстроки.
  • Pos() - позиция строки-аргумента, начиная с 1.
  • Length() - длина строки.
  • printf(), sprintf() - форматирование строки по таким же спецификаторам, как в предыдущем шаге. Первая заменяет значение строки форматированным, вторая его присоединяет.
  • operator[] - один из операторных методов. Возвращает соответствующий char, как в массиве, начиная с 1.

Еще эти строки сравниваются по стандарту ANSI через операторы сравнения.

char[]

Старые добрые символьные массивы, состоящие из символов и ограниченные последним значением, равным NULL. Поэтому их еще называют NULL-terminated string. Писать долго, зато очень звучно ;). Используются в основном при обращении к WinAPI функциям. При желании более подробную информацию можно посмотреть в Help'е, а я приведу функции. Первый аргумент здесь везде основная строка:

  • strlen() - длина строки.
  • sprintf() - аналогичное printf() форматирование.
  • strcpy() - копирование одной строки в другую.
  • strstr() - аналогично Pos().
  • strcmp(), strcmpi() - сравнение двух строк. Во втором случае без учета регистра.

WideString

Этот класс также взят из Delphi. Основным его отличием от AnsiString является хранение массива расширенных символов, называемых wide characters, тип wchar_t*. Поэтому он в основном используется в COM приложениях или при обращении к OLE интегрированным объектам. Приводить его методы я не буду, поскольку они очень сильно похожи на соответствующие в AnsiString. Наиболее оригинальным является метод c_bstr(), возвращающий, по аналогии с c_str(), указатель на массив из wchar_t*. Он используется без аргументов.

Надо отметить, что существуют еще некоторые строчные классы C++, которые я не рассмотрел. Например: string, basic_string, SmallString. Я все же скажу насчет первых двух. Класс string я считаю несколько устаревшим на фоне AnsiString. Класс basic_string является классом STL.

На сегодня все, по-моему, много разобрали.

Предыдущий шаг | Оглавление | Следующий шаг

Рассылка новостей
1Ц3У 160 бзпо цилиндрический редуктор 1Ц3У 160 www.rusprivod.ru.
Рейтинги
© 2007, Программирование Исходники.Ру