Строковый тип данных
Строковые константы записываются как последовательности символов, ограниченные апострофами. Пример:
'Текстовая строка'Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа)
#54#32#61
и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
'abcde'^A^M
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.
Выражения типа char можно присваивать любым строковым переменным.
В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i].
Например, если st - это 'Строка', то
st[1] - это 'С', st[2] - это 'т', st[3] - 'р' и так далее.
Над строковыми данными определена операция слияния (конкатенации), обозначаемая знаком +.
Например:
a := 'Turbo';
b := 'Pascal';
c := a + b;
В этом примере переменная c приобретет значение 'TurboPascal'.
Кроме операции слияния (конкатенации) над строками определены операции сравнения <,>,=,<>,<=,>=.
Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.
Процедуры и функции для работы со строками
Length(s:string):integer
Copy(s:string; index:integer; count:integer):string
Delete(var s:string; index,count:integer)
Insert(source:string; var s:string;index:integer)
Pos(substr,s:string):byte
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.
Пример.
s := 'Система Turbo Pascal';
x1 := pos('Pascal', s); {x1 будет равно 15}
x2 := pos('Basic', s); {x2 будет равно 0}
Str(X: арифметическое выражение; var st: string)
Некоторые функции, связанные с типом char, достаточно часто используются и при работе со строками.
Chr(n: byte): char
Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n.
Ord(ch: char): byte;
В данном случае функция возвращает код символа ch.
UpCase(c: char): char;
Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.
Примеры заданий:
2. Введенную строку вывести на экран по одному символу в строке экрана.
3. Вывести на экран кодовую таблицу.
Program Str3;VarI : Byte;Begin
For I:=32 to 255 doWrite('VV',I:4, '-',Chr(I))
End.
Цикл в программе начинается с 32 потому, что символы с кодами от 0 до 31 являются управляющими и не имеют соответствующего графического представления.
4. Определить, является ли введенная строка "перевертышем". Перевертышем называется такая строка, которая одинаково читается с начала и с конца. Например, "казак" и "потоп" - перевертыши, "канат" - не перевертыш".
Решение:
из введенной строки сформируем другую строку из символов первой, записанных в обратном порядке.
сравним первую строку со второй; если они окажутся равны, то ответ положительный, иначе - отрицательный.
Program Str4;Var S,B : String;I : Byte;Begin
Writeln('Введите строку'); Readln(S);B:=''; {Переменной B присваиваем значение "пустая строка"}For I:=1 to Length(S) doB:=S[I]+B; {Конкатенация. Символы строки S пристыковываются к переменной B слева. Самым левым окажется последний.}If B=S Then Writeln('Перевертыш') Else Writeln('Не перевертыш')
End.
5. Найти сумму цифр введенного натурального числа.
Program Str5;Var
S : String;I,X,A,C : Integer;
Begin
Writeln('Введите натуральное число');Readln(S); {Число вводится в строковую переменную}A:=0;For I:=1 To Length(S) DoBegin
Val(S[I],X,C); {Цифровой символ превращается в число}A:=A+X {Цифры суммируются}
End;Writeln('Сумма цифр равна ',A)
End.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.