Строковые переменные

Для упрощения работы с массивами символьных переменных существуют строковые переменные, содержащие от 0 до 255 символов.

ОПИСАНИЕ СТРОКОВОЙ ПЕРЕМЕННОЙ

Описание строковой переменной осуществляется в разделе VAR с помощью служебного слова STRING.

 
 


VAR имя:STRING[ длина ];,

где имя - имя строковой переменной;

длина - максимальное количество символов в строковой переменной, фактически может

быть меньше.

Длину можно не указывать, тогда она считается равной 255:

VAR a:string;

ПРИСВОЕНИЕ ЗНАЧЕНИЙ СТРОКОВЫМ ПЕРЕМЕННЫМ

Примеры: а:='школа';

b:='12345';

c:='';пустая строка, т.е. не содержит ни одного символа.

ВВОД СТРОКОВОЙ ПЕРЕМЕННОЙ

Осуществляется так же, как и ввод числовых переменных:

READLN(A);

ВЫВОД СТРОКОВЫХ ПЕРЕМЕННЫХ

Осуществляется так же, как и вывод числовых переменных:

WRITELN(A);

КОНКАТЕНАЦИЯ (СОЕДИНЕНИЕ) СТРОК

Конкатенация строк осуществляется с помощью знака "+".

Пример: b:='Cидоров';

c:='Петя';

a:=c+' '+b;

в результате "а" получит значение "Петя Сидоров".

ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКОВЫМИ ПЕРЕМЕННЫМИ

1. LENGTH - определение фактической длины строки.

 
 


обращение: имя:=length(строка);

Пример: h:='паровоз';

n:=length(h);

в результате "n" будет равно 7.

Задача. Определить количество букв "о" во введенном слове.

program prim;

var a:string;

l,i,s:integer;

begin

readln(a);

l:=length(a);

s:=0;

for i:=1 to l do

if a[i]='o' then s:=s+1;

writeln('количество букв о =',s);

end.

2. COPY - выделение части строки.

 
 


обращение: имя:=сopy(cтрока,нач.позиция,к-во_символов)

Пример. a:='паровоз';

b:=copy(a,3,3); {выделяем из строки А начиная с 3-го символа 3 символа}

в результате "b" будет равно "ров".

3. DELETE - удаление части строки.

 
 


обращение: delete(строка,нач.позиция,к-во_символов)

Пример. a:='паровоз';

delete(a,3,2); {удаляем из строки А начиная с 3-го символа 2 символа}

в результате "а" будет равно "павоз".

4. INSERT - вставка символов в строку.

 
 


обращение: insert(набор_символов,строка,позиция_вставки)

Пример. a:='паоз';

b:='ров';

insert(b,a,3); {набор символов из переменной "b" вставляется в строку "а"

начиная с 3-й позиции}

в результате "а" примет значение "паровоз"

5. POS - поиск подстроки в строке.

 
 


обращение: имя:=pos(подстрока,строка)

Ищется указанная подстрока в строке. Результат будет равен номеру первого символа строки, с которого обнаружено первое вхождение подстроки. Если подстрока не обнаружена, то результат будет равен 0.

Примеры: a:='паровоз';

1) n:=pos('o',a);

в результате "n" будет равно 4.

2) n:=pos('у',a);

в результате "n" будет равно 0.

6. STR - преобразование числового значения в строковое.

 
 


обращение: STR(число,строка);

Пример: var n:integer; a:string;

begin

n:=13;

str(n,a);

в результате переменная "а" получит значение '13'.

7. VAL - преобразование строкового значения в числовое.

 
 


обращение: VAL(строка,число,номер_неправ.символа)

номер_неправ. символа - переменная, в которую запоминается номер неправильного символа, в случае, если строковое значение нельзя перевести в числовое.

Пример. var n,k:integer;a:string;

begin

a:='13';

val(a,n,k);

в результате переменная "n" получит значение 13.

ЗАДАЧА. Составить программу,которая в введенном слове после каждой буквы А вставляет знак "-". Если букв А в слове нет, то программа работу заканчивает.

1 способ. Изменения происходят в том же введенном слове.

program prim;

var a:string;s,i,l:integer;

label 1,2;

begin

1:writeln('введи слово');

readln(a);

l:=length(a);

s:=0; {счетчик количества букв А}

i:=1; {берем первую букву}

repeat

if a[i]='a' then begin s:=s+1;

insert('-',a,i+1); {вставляем знак "-" после i-й буквы }

i:=i+1; { порядковый номер этого знака "-" в слове }

l:=l+1; { увеличиваем длину слова,т.к. вставили в него знак "-" }

end;

i:=i+1; {берем следующую букву в слове }

until i>l;

writeln('к-во букв "а" в слове =',s);

if s=0 then goto 2

else begin

writeln(a);

goto 1;

end;

2:end.

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

program prim;

var a,b:string;

s,i,l:integer;

label 1,2;

begin

1: writeln('введи слово');

readln(a);

l:=length(a);

i:=pos('a',a); {определяем, есть ли буква "а" в слове}

if i=0 then goto 2;

s:=0; {счетчик букв "а" в слове }

b:=''; {строка-результат пока пустая}

for i:=1 to l do begin

b:=b+a[i]; { в строку "b" добавили i-ю букву из введенного слова }

if a[i]='a' then begin s:=s+1;

b:=b+'-'; { в строку "b" добавили знак "-" }

end;

end;

writeln('количество букв А в слове =',s);

writeln(b);

goto 1;

2:end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: