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

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

 

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

 

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

Здесь знак < означает предшествование по алфавиту (подробности см. выше в описании strcmp). Равенство означает точное совпадение строк.

 

3) Сцепление (конкатенация): S1+S2

Пример. Вывести в одну строку Memo1 переменные S1 и S2 типа String, разделяя их пробелом:

Memo1->Lines->Add(S1+" "+S2);

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

 

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

 

S1="Пример:";

S2=23.5; // Равносильно S2=FloatToStr(23.5);

Memo1->Lines->Add(S1+" "+S2);

 

 

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

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

 

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

 

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

Пример: Вывести все символы строки, кроме первого:

Edit1->Text=s.SubString(2, s.Length()-1);

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

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

Пример: Заменить в строке S символы с 3-го по 7-ой на многоточие.

 

S.Delete(3,5);

S.Insert("...",3);

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

Пример:

S1="Ababab", S2="ab";

i=S1.Pos(S2); // i=3

 

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

 

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

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

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

Пример:

 

S1="Язык - Java";

S2=AnsiUpperCase(S1); // S2="ЯЗЫК - JAVA"