Теоретический материал (Паскаль)

Стандартные функции для работы со строками (Сoncat, Сopy, Length, Pos, UpCase)

Функция Length

Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации):

Program DemoFunctionLength;
Var
  Word : string;
Begin
  write ('Введите слово :');
  readln(Word);
  writeln('Это слово состоит из ',Length (Word),' букв');
End.

Примечание. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.

Функция Upcase

Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа, поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

Program DemoFunctionUpcase;
Var
  Word : string;
  i : Byte;
Begin
  Word := 'фирма Microsoft';
  for i := 1 to Length (Word) do
    Word[i] := UpCase (Word[i]);
  writeln(Word); {выводится текст 'фирма MICROSOFT'}
End.

В результате работы программы на терминал выдается строка, содержащая большие английские буквы и маленькие русские.

Примечание. Русские литеры не могут обрабатываться этой функцией.

Для того, чтобы преобразовать в заглавные строчные буквы русского алфавита, применяют оператор выбора Case:

  . . .
    case Word[i] of
      'a' : Word[i] := 'A';
      'б' : Word[i] := 'Б';
      'в' : Word[i] := 'В';
      . . .
end;
. . .

Функция Copy

Функция Copy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая эту функцию, нужно указать следующие параметры:

  • имя строки, из которой должен извлекаться копируемый фрагмент,


  • позицию в строке, начиная с которой будет копироваться фрагмент,


  • число копируемых символов.
Program DemoFunctionCopy;
Var
  Word : string;
  Word1 : string[20];
Begin
  Word := 'фирма Microsoft';
  writeln(Word); {выводится текст 'фирма Microsoft'}
  Word1 := Copy (Word,1,5);
  writeln(Word1); {выводится текст 'фирма'}
End.

Примечание. Если начальная или конечная позиции копируемого текста находятся вне пределов исходной строки символов, то сообщение об ошибке не выдается. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором - фрагмент от начальной позиции копирования до конца исходной строки.

Функция Pos

C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции, с которой он начинается. Если фрагмент не найден, то функция возвращает нуль.

Program DemoFunctionPos;
Var
  Word : string;
  SearchWord : string[20];
  Position : Byte;
Begin
  Word := 'фирма Microsoft';
  writeln(Word); {выводится текст 'фирма Microsoft'}
  writeln ('Введите искомый текст ');
  readln (SearchWord);
  Position := Pos(SearchWord, Word);
  if Position <> 0
    then
      begin
        write ('Фрагмент <',SearchWord,'> содержится в строке <',Word);
        writeln ('>, начиная с позиции ',Position );
      end
    else
      writeln('Фрагмент <',SearchWord,'> не содержится в строке <',Word, '>');
End.

Примечание. Функция Pos требует полного совпадения искомого фрагмента и фрагмента строки, в которой производится поиск, причем большие и маленькие буквы считаются различными символами.

Функция Concat

Функция Concat (Str1, Str2, ..., StrN) выполняет конкатенацию (или сцепление) строк Str1, Str2, ..., StrN в том порядке, в каком они указаны в списке параметров. Общее количество символов всех сцепленных строк не должно превышать 255.

Program DemoFunctionConcat;
Var
  Word : string;
  Word1, Word2 : string[20];
Begin
  Word1 := 'фирмы ';
  Word2 := 'Microsoft';
  Word := Concat('Компьютеры ',Word1,Word2);
  writeln(Word); {выводится текст 'Компьютеры фирмы Microsoft'}
End.