Что делает copy в паскале
Windows, Real, Protected
Замечания
Параметр S — выражение со строковым типом. Index и Count — выражения целочисленного типа. Функция Copy возвращает подстроку строки S, содержащую Count символов, начиная с символа с номером Index.
Если значение Index больше, чем длина строки S, то Copy возвращает пустую строку. Если значение Count больше, чем оставшееся количество символов в строке с позиции Index до конца строки, то возвращается Length (S)-Index символов.
Смотри также
Пример
Язык:
Русский
English
Функции Copy, Pos, процедуры Delete, Insert.
Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет скопировано.
Процедура Delete удаляет часть символов из строки. Процедура имеет 3 параметра. Delete (st, index, count). St-строка, из которой будут удалены символы, Index-номер символа, с которого начинается удаление, Count-количество символов, подлежащих удалению.
Процедура Insert позволяет вставлять символы в строку. Процедура имеет 3 параметра. Insert (subst, st, index). Subst-подстрока, которую необходимо вставить, St-строка, в которую вставляется подстрока, Index-номер элемента, с которого начинается вставка.
Функция Pos отыскивает в строке первое вхождение подстроки и возвращает в качестве значения номер элемента, с которого начинается вхождение. Функция имеет 2 параметра. Pos (subst, st). Subst-подстрока, St-строка.
Использование функции COPY, процедуры DELETE.
program string5; uses crt; var stroka1,stroka2:string; begin clrscr; stroka1:='Programmirovanie '; stroka2:=copy(stroka1,3,10); writeln(stroka2); delete(stroka1,3,10); writeln(stroka1); readln end.
Строка №6. Записываем в переменную «stroka1» слово «Programmirovanie».
Строка №7. В переменную «stroka2» записываем значение функции Copy. В результате работы этой функции из переменной «stroka1» (слова «Programmirovanie») будет скопировано 10 символов, начиная с 3-го символа.
Строка №9. Процедура Delete удалит из слова «Programmirovanie» 10 символов, начиная с 3-го.
Использование функции POS, процедуры INSERT.
program string6; uses crt; var stroka1,stroka2:string; nomer:integer; begin clrscr; stroka1:='Programmirovanie '; stroka2:='PASCAL'; insert(stroka2,stroka1,8); writeln(stroka1); nomer:=pos('S',stroka1); writeln(nomer); readln end.
Строка №9. Процедура Insert позволяет вставить в строку другую строку. В нашем случае в слово «Programmirovanie» вставляется слово «PASCAL», начиная с 8-го символа.
Строка №11. В переменную «nomer» записывается значение функции Pos. Переменная «stroka1» содержит слово «ProgramPASCALmirovanie». Буква «S» является 10-й по счету. Соответственно в переменную «nomer» будет записано число 10.
процедура Copy, паскаль
Чтo вeрнeт фyнкция Copy(‘крacнaя cтpoкa’, Pos(‘а‘, S) + 1, Length(S)), ecли в S былo зaпиcaнo знaчeниe ‘cтpoкa’?
Выведет ‘я стро’ же да?
Лучший ответ
Copy(<строка с которой работаем>, ,);
Функция length(s) вернет число 6
функция Pos найдет первое вхождение буквы «а» в строке s и номер этого элемента т. е. в данном случае это будет 6 да еще +1 = 7
Что мы имеем:
Copy(‘крacнaя cтpoкa’,7, 6)
И выходит что начиная с 7 символа в строке (а это символ «я») берем 6 символов и передаем это функции. Выходит «я cтpo».
Вроде все доступно объяснилстрока>
Остальные ответы
copy — функция, а не процедура.
Выведет ‘я cтpo’
Алеч.kаПрофи (689) 11 лет назад
Функция 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 (её мы изучим как-нибудь в другой раз, а пока только скажу, что она преобразует строку в число).
Программа простая. Если кто не разобрался, то см. видео выше.