LINUX.ORG.RU
ФорумTalks

[студентота-тред]Pascal and Array of Char


0

1

Приветсвую, попросили знакомые студенты решить задачку на паскале, заглох на моменте когда необходимо одной из переменных присвоить первые n символов другой переменной.

word1:=(input[1..a]);
выдает ошибку:
"word.pas(18,8) Error: Incompatible types: got "Array[0..2147483646] Of Char" expected "ShortString""
В var переменные word1 и input прописаны как string. ЧЯНТД и как правильно поступить в такой ситуации?

Пробежать по буквам второй, добавляя их в первую?

Zhbert ★★★★★
()
Ответ на: комментарий от vertexua

Спасибо, попробуемс

Пробежать по буквам второй, добавляя их в первую?

Как-то костыльно выглядит..

ZZaiatSS ★★
() автор топика
Ответ на: комментарий от ZZaiatSS

>Как-то костыльно выглядит..

Зато работать будет =)

Zhbert ★★★★★
()

у паскаля, afair, строки хитрые. в нулевом байте - длина, потому c-style хаки не прокатят

ananas ★★★★★
()

http://borlandpascal.wikia.com/wiki/String_operations#COPY

a:=copy(s_string,x,y);

The copy function returns the substring from the main string that starts on on the x position and has y characters. This is useful when you want to delete a substring from a string but also keep the deleted substring for later use in strings. For example:

s:='Honest Abe Lincoln';
x:=copy (s,8,3); {x will be 'Abe'}

Uter
()
Ответ на: комментарий от vertexua

как по мне - типичное сишное баловство с union-ами

ananas ★★★★★
()

Замечательно, решилось все через

word1:=Copy(input, 1, n);
Всем огромное спасибо :)

ZZaiatSS ★★
() автор топика
Ответ на: комментарий от ZZaiatSS

> Как-то костыльно выглядит..

Просто никто не помнит с какой версии существует Copy, по этому советуют гарантированно рабочее решение.

atrus ★★★★★
()
Ответ на: комментарий от yoghurt

Таки студентота, в некоторых вузах учат паскалю.

matich
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.