Pascal. Строки
Строковый тип данных strring - это последовательность символов (тип данных char). Строки в PascalABC могут иметь произвольную длину, доступ к каждому символу осуществляется аналогично одномерным массивам - по индексу, порядковому номеру символа в строке.
Строки можно сравнивать операцией =.
Операция + для строк означает конкатенацию (слияние).
Для строк определены стандартные процедуры и функции, некоторые из которых приведены в таблице:
Функция/Процедура | Описание |
Length(s : string) | Возвращает длину строки s (количество символов) |
Copy(s : string, n, k : integer) | Возвращает k символов строки s, начиная с n-го символа |
Insert(subs, s : string, n : integer) | Вставляет подстроку subs в строку s, начиная с n-го символа |
Delete(s : string, n, k : integer) | Удаляет k символов из строки s, начиная с n-го символа |
Pos(subs, s: string, n: integer) | Возвращает позицию первого символа подстроки subs в строке s, поиск начинается с n-го символа |
Trim(s: string) | Возвращает строку с удаленными начальными и конечными пробелами |
IntToStr(a: integer) | Возвращает строковое представление целого числа a |
FloatToStr(a: real) | Возвращает строковое представление вещественного числа a |
StrToInt(s: string) | Возвращает целое число, преобразованное из строкового представление целого числа |
StrToInt64(s: string) | Возвращает целое число типа int64, преобразованное из строкового представление целого числа |
StrToReal(s: string) | Возвращает вещественное число, преобразованное из строкового представление вещественного числа |
Тип данных char является перечисляемым типом, т.е. все его элементы имеют порядковый номер и над ним возможны операции ord (взятие порядкого номера) pred и succ - предыдущий и последующий элемент соответственно. Функция chr возвращает символ по порядковому номеру, указанному в аргументе функции.
Также для символа возможна операция in - проверки вхождения в диапазон. Например, проверка является ли первый символ введенной строки латинской буквой или цифрой:
var
s :string;
begin
write('Введите строку: ');
readln(s);
if s[1] in ['a'..'z','A'..'Z','0'..'9'] then
writeln('Цифра или буква')
else writeln('Не цифра и не буква');
end.
Задача: Подсчитать количество заглавных и строчных латинских букв "A" и "a" в тексте, введенном пользователем.
Решение:
var
s :string;
count : integer;
begin
write('Введите текст: ');
readln(s);
count := 0;
for var i := 1 to Length(s) do
if (s[i] = 'A') OR (s[i] = 'a') then
Inc(count);
writeln('Количество букв "A" и "a": ', count);
end.
Задачи для самостоятельного решения
-
Подсчитать количество цифр в тексте, введенном пользователем.
-
Подсчитать количество заглавных и количество строчных латинских букв в тексте, введенном пользователем.
-
Удалить из введенной пользователем строки все пробелы.
-
Убрать из введенной пользователем строки на латинице все символы, кроме заглавных и строчных символов, пробелов и всех знаков препинания.
-
Вывести таблицу ASCII по 16 символов в 16 строках. Примечание: Символы имеют порядковые номера, соответствующие таблице ASCII. Применить функцию chr.
-
Во введенном пользователем тексте сделать все заглавные латинские буквы строчными.
-
Вывести первое слово из текста, введенного пользователем.
-
Вывести последнее слово из текста, введенного пользователем.
-
В строке, введенной пользователем, удвоить все заглавные латинские буквы (например, A заменить на AA). Примечание: Необходимо изменить исходную строку, а не формировать новую.
-
Записать в массив слова из введенной пользователем строки с не более, чем десятью словами. Вывести массив вместе с номерами слов Примечание: Между словами может быть более одного пробела.