Глава 21
Понятие строк в ANSI С и ANSI C++
За последние несколько лет происходит интенсивный переход от процедурных языков программирования к объектно-ориентированным, таким как C++. Язык C++ отличается от других объектно-ориентированных языков тем, что во многом основан на процедурном языке С (С является подмножеством C++). Таким образом, для программиста на C++ доступны все функции С.
Сильной стороной библиотеки С являются функции для обработки массивов символов, заканчивающихся нулем — иными словами, строк. В C++ множество различных строковых классов возросло за счет дополнений к библиотеке С, предлагаемых продавцами компиляторов, авторами программных продуктов, домашними программистами и другими. Какую библиотеку выбрать? Это — трудный выбор (если вы найдете программиста на C++, который интенсивно использует в своих программах строки, то вы, вероятно, обнаружите в его коде множество функций ANSI С, таких как
strlen, strcat И strcpy).
Строковый класс в ANSI C++ дополняет стандартный строковый класс большим количеством функциональных возможностей, доступных в любом компиляторе, имеющем библиотеку ANSI (ANSI, American National Standards Institute — это Американский национальный институт по стандартам, представитель Соединенных Штатов в ISO — International Standards Organization, Международная организация по стандартизации). Например, используя строковый класс в программах для Macintosh, DOS'и Windows, вы вправе ожидать от него идентичного поведения на всех трех платформах. И хотя реализация строкового класса ANSI C++ по существу не изменилась от Borland C++ 4.5 к 5.0 (за исключением появления одной или двух директив ftpragma, добавленных к заголовочному файлу cstring.h для обеспечения