Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ОАиП.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
233.47 Кб
Скачать

31. Тип String. Операции с типом String. Методы класса String.

а) Основные понятия.

В оконных компонентах и функциях C++ Builder'а основным строковым типом является тип AnsiString, который обозначается также просто как String .

Отдельные символы, входящие в строку типа String, имеют тип char. К ним можно обращаться так же, как к элементам массива, но нумерация начинается с единицы.

Текст в переменной типа String не обязательно заканчивается нуль-терминатором. Если попытка обращения к несуществующему символу строки (например, в вышеприведенном образце V[0], или V[8]) может вызвать ошибку (в то время как выход за границы массива не проверяется).

б) Действия над типом String.

Основными операциями с типом String являются:

  1. Присваивание: S1=S2;

  1. Сравнение:S1==S2, S1<=S2, S1!=S2 и т.д.

Здесь знак < означает предшествование по алфавиту. Равенство означает точное совпадение строк.

  1. Сцепление : S1+S2

Допустимы и операции присваивания вида S1+=S2.

Многие другие операции над строками осуществляются с помощью методов типа String. Метод - это тип функций, вызываемых особым образом: для обращения к методу надо после имени переменной типа String поставить точку, а затем имя метода и круглые скобки (в которых, при необходимости, указываются параметры метода).

Основные методы типа String (и типы их результатов, если они есть):

int Length() - длина строки (количество символов в ней);

String SubString(int i, int n) - копирует из строки подстроку, начиная с i-ой позиции, длиной n символов. Исходная строка не изменяется. (Если в исходной строке, начиная с i-ой позиции, содержится меньше n символов, метод выделяет столько символов, сколько есть).

Insert(String S2, int i) - вставляет строку S2 в середину строки, начиная с i-ой позиции;

Delete(int i, int n) - удаляет из строки n символов, начиная с i-ой позиции. (Если в исходной строке, начиная с i-ой позиции, содержится меньше n символов, метод удаляет имеющиеся символы с i-ой позиции).

int Pos(String S2) - ищет первое вхождение подстроки S2 в данной строке. Результат - номер позиции, начиная с которой в строке содержится S2, либо 0, если S2 в ней не содержится.

char * c_str() - преобразует строку к типу "массив char" (см. ниже).

Наряду с методами, для типа String существуют также функции, например функции преобразования к заданному регистру. Они преобразуют не только латинские, но и русские буквы. Они могут применяться с целью регистро-нечувствительного сравнения:

String AnsiUpperCase (String S); ее результат получается из строки S преобразованием всех букв к верхнему регистру (большие буквы);

String AnsiLowerCase (String S); ее результат получается из строки S преобразованием всех букв к нижнему регистру (малые буквы);

32. Преобразование переменных типа String и массивов char друг в друга и в другие типы.

Переменной типа String можно присваивать и значение большинства других типов: символьных (char, массив char), числовых (int, double и т.д.), при этом они автоматически преобразуются к типу String. Аналогично, если в бинарной операции первый операнд имеет тип String, второй также преобразуется к типу String.

а) Преобразование из массива char в String и наоборот.

Для преобразования массива char к типу String достаточно просто присвоить его переменной типа String.

Обратное же преобразование автоматически не делается. Для его осуществления используется метод c_str() типа String. Он создает временный массив char, который создается только на время выполнения оператора, содержащего этот метод:

Если же нужно использовать полученный массив char в последующей программе, его надо скопировать в "постоянный" (объявленный) массив char :

Для ввода массивов char в оконных приложениях необходимо использовать функцию strcpy и метод c_str() :

б) Преобразование из String в простую переменную типа char.

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

в) Преобразование String и числовых типов.

Функции преобразования были описаны выше в теме "Функции ввода-вывода, Ввод-вывод в оконных приложениях":

String IntToStr(int x); - int  String

int StrToInt(String S); - String  int

double StrToFloat(String S); - String  double

String FloatToStr(double x); - double  String

String FloatToStrF(double x, Format, int p, int d);

double  String с указанием формата и точности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]