Строковый тип данных Для обработки строковой информации в

advertisement
Строковый тип данных
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных.
Строкой в Паскале называется последовательность из определенного количества символов.
Количество символов последовательности называется длиной строки. Синтаксис:
var s: string[n];
var s: string;
n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот
параметр опущен, то по умолчанию он принимается равным 255.
В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й
символ переменной st записывается как st[i].
Например, если
st := 'Строка', то st[1] - это 'С', st[2] - это 'т', st[3] - 'р' и так далее.
Операции над строками:
1. Операция слияния, обозначаемая знаком +. Например:
a := 'Turbo';
b := 'Pascal';
c := a + b; {c приобретет значение 'TurboPascal'}.
2. Длина строки
n:=Length(s);
Пример.
n := length('Pascal'); {n будет равно 6}
Задача. Ввести строку с клавиатуры и заменить все буквы «а» на буквы «б».
program qq;
var s: string;
i: integer;
begin
writeln('Введите строку');
readln(s);
for i:=1 to Length(s) do
if s[i] = 'а' then s[i] := 'б';
writeln(s);
end.
3. Подстрока: выделить часть строки в другую строку.
Пример.
s := 'Система Turbo Pascal';
s2 := copy(s, 1, 7); {s2 будет равно 'Система'}
s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}
s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'}
4. Удаление части строки
Пример.
s := 'Система Turbo Pascal';
delete(s,8,6); {s будет равно 'Система Pascal'}
5. Вставка в строку
Пример.
s := 'Turbo Pascal';
insert('Я изучаю ',s, 1); {s будет равно 'Я изучаю Turbo Pascal'}
6. Поиск в строке
Функция производит поиск в строке s подстроки. Результатом функции является номер
первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция
возвращает 0.
Пример.
s := 'Система Turbo Pascal';
x1 := pos('Pascal', s); {x1 будет равно 15}
x2 := pos('Basic', s); {x2 будет равно 0}
Задача Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилияинициалы».
Пример:
Введите имя, фамилию и отчество:
Василий Алибабаевич Хрюндиков
Результат:
Хрюндиков В.А.
Алгоритм:
 найти первый пробел и выделить имя
 удалить имя с пробелом из основной строки
 найти первый пробел и выделить отчество
 удалить отчество с пробелом из основной строки
 «сцепить» фамилию, первые буквы имени и фамилии, точки, пробелы…
program qq;
var s, name, otch: string;
n: integer;
begin
writeln('Введите имя, отчество и фамилию');
readln(s);
n := Pos(' ', s);
name := Copy(s, 1, n-1); { вырезать имя }
Delete(s, 1, n);
n := Pos(' ', s);
otch := Copy(s, 1, n-1); { вырезать отчество }
Delete(s, 1, n);
{ осталась фамилия }
s := s + ' ' + name[1] + '.' + otch[1] + '.';
writeln(s);
end.
Домашнее Задание
«3»:
1. Ввести символьную строку и заменить все буквы «а» на буквы «б», как заглавные, так и
строчные.
Пример:
Введите строку:
ааббссААББСС
Результат:
ббббссББББСС
2. Ввести в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести инициалы
и фамилию.
Пример:
Введите фамилию, имя и отчество:
Иванов Петр Семёнович
Результат:
П.С. Иванов
«4»:
1. Ввести символьную строку и заменить все буквы «а» на буквы «б» и наоборот, как
заглавные, так и строчные.
Пример:
Введите строку:
ааббссААББСС
Результат:
ббаассББААСС
2. Ввести имя файла (возможно, без расширения) и изменить его расширение на «.exe».
Пример:
Введите имя файла:
Введите имя файла:
qqq
qqq.com
Результат:
Результат:
qqq.exe
qqq.exe
«5»:
1. Ввести символьную строку и проверить, является ли она палиндромом (палиндром
читается одинаково в обоих направлениях).
Пример: Пример:
Введите строку:
Введите строку:
АБВГДЕ
КАЗАК
Результат:
Результат:
Не палиндром.
Палиндром.
2. Ввести путь к файлу и «разобрать» его, выводя каждую вложенную папку с новой строки
Пример:
Введите путь к файлу:
C:\Мои документы\10-Б\Вася\qq.exe
Результат:
C:
Мои документы
10-Б
Вася
qq.exe
Download