Раздел: Стандартные функции Паскаля
Функция Copy
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Функция Copy в Паскале копирует часть строки. Синтаксис:
function Copy(S: AStringType; Index: Integer; Count: Integer) : AStringType;
Здесь AStringType - это любой строковый тип данных.
Второй вариант для динамических массивов:
function Copy(A: DynArrayType; Index: Integer; Count: Integer) : DynArrayType;
Здесь DynArrayType - это какой-либо динамический массив (о динамических массивах как-нибудь в другой раз).
Функция Copy копирует несколько символов подряд из строки S и возвращает эти символы в виде строки. Первый символ, с которого начинается копирование строки, указан в параметре Index (нумерация символов в строке начинается с единицы слева направо). Количество копируемых символов указано в параметре Count.
Например, вот этот код
str := Copy('123456', 3, 2);
копирует в строку str два символа, начиная с 3-го. То есть после выполнения этого кода в str будет строка '34'.
Если в параметре Count будет указано значение, превышающее длину строки, то результат будет обрезан. Например, вот этот код
str := Copy('123456', 4, 10);
копирует в строку str три символа '456', хотя мы “заказали” копирование 10 символов.
Если в параметре Index будет указано значение, превышающее длину строки, то функция вернёт пустую строку. Например, вот этот код
str := Copy('123456', 15, 2);
вернёт пустую строку, потому что в строке всего 6 символов, а мы указали в качестве первого копируемого символа число 15.
Для динамических массивов функция возвращает новый динамический массив того же типа, что и указанный в параметре А, и копирует количество элементов Count из старого массива, начиная с элемента, определённого параметром Index.
А теперь пример программы.
program funccopy; uses SysUtils; var str : string; d, m, y : string; im : integer; begin str := '18.01.2017'; d := Copy(str, 1, 2); //d = 18 m := Copy(str, 4, 2); //m = 01 y := Copy(str, 7, 4); //y = 2017 im := StrToInt(m); case im of 1 : str := d + ' January ' + y; 2 : str := d + ' February ' + y; 3 : str := d + ' March ' + y; 4 : str := d + ' April ' + y; 5 : str := d + ' May ' + y; 6 : str := d + ' June ' + y; 7 : str := d + ' July ' + y; 8 : str := d + ' August ' + y; 9 : str := d + ' September ' + y; 10: str := d + ' October ' + y; 11: str := d + ' November ' + y; 12: str := d + ' December ' + y; end; WriteLn(str); ReadLn; end.
Не забудьте подключить модуль SysUtils, чтобы использовать функцию StrToInt (её мы изучим как-нибудь в другой раз, а пока только скажу, что она преобразует строку в число).
Программа простая. Если кто не разобрался, то см. видео выше.
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |