Переменные типа string на самом деле являются массивами символов. Таким образом, обращение к отдельному символу строки осуществляется так же, как и к элементу массива.

Например:
s[7]:=’g’;
В языке Турбо-Паскаль существует ряд стандартных функций для работы со строками. Ниже приведены некоторые из них.
Length(s) – вычисляет текущую длину строки s;
Copy(s,x,y) – выделяет из строки s подстроку длиной y, начиная с x;
Concat(s1,…,sN) – соединяет строки s1, s2, … , sN;
Pos(s1,s2) – ищет подстроку s1 в строке s2.

Работу со строками рассмотрим на примере 14.
Задана строка символов. Группы символов, разделенные пробелом и не содержащие пробелов внутри себя, будем называть словами. Вывести все слова, имеющие среднюю для заданной строки длину.

Пример 14

pascal
uses Crt;
var
   s   : string;
   i,j   : integer;
   l,n,len_sr : integer;
   word: boolean;
BEGIN
ClrScr;
{ Ввод строки }
writeln('Введите строку');
readln(s);
{ Определение средней длины слова в строке }
l:=0;  { суммарная длина слов в строке }
n:=0;  { количество слов в строке }
word:=false; { слово еще не началось }
for i:=1 to length(s) do
 begin
   if ord(s[i])<>32 then
    begin
      l:=l+1;
      word:=true; { слово началось }
    end
   else
      if word then
       begin
         word:=false;
         n:=n+1;
       end
 end;
if word then n:=n+1;
len_sr:=round(l/n);    { вычисление средней длины слова }

writeln;
writeln('Общее количество символов в словах: ',l:3);
writeln('Количество слов в строке:',n:3);
writeln('Средняя длина слова в строке:',len_sr:3);
l:=0;  { длина текущего слова }
n:=0;  { начало слова - номер элемента строки }
word:=false;  { слово еще не началось }
for i:=1 to length(s) do
 begin
   if ord(s[i])<>32 then
    begin
      l:=l+1;
      if not (word) then
       begin
         word:=true;    { слово началось }
         n:=i;
       end
    end
   else
      if word then
       begin
         word:=false;
         if l=len_sr then
         begin
            for j:=1 to l do
              write(s[n+j-1]);
            writeln;
          end;
         l:=0;
       end
 end;
if word then
   if l=len_sr then
    begin
      for j:=1 to l do
         write(s[n+j-1]);
      writeln;
    end;
readln;
END.