Помощь - Поиск - Пользователи - Календарь
Полная версия: Ф-я Length(s)
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
klem4
Как вы можете объяснить результат этой рпограммы ? Строка изменяется, а длина остается прежней.

uses crt;
var
s : string;
T : char;
i : byte;

begin
clrscr;
s := 'TEST';
for i := length(s) + 1 to 20 do s[i] := 'r';
writeln('s[6] = ', s[6]);
writeln('length(s) = ',length(s));
readln;
end.

APAL
А ты укажи новую длину в s[0]
cool.gif
klem4
Действительно, странно по идее паскаль сам долже этим заниматься smile.gif
APAL
Самый первый пост:
http://forum.pascalnet.ru/index.php?s=&sh...indpost&p=19856

Цитата(klem4 @ 4.03.2006 11:06) *

Действительно, странно по идее паскаль сам долже этим заниматься smile.gif

Он это делает сам если используешь методы обращения к строке, а не прямое ее изменение.
klem4
Цитата
После посимвольного ввода строки, не получается вывести ее на экран. В чем дело?
При посимвольном вводе строки, Вы забыли указать длину получившейся строки



yes2.gif


Даже странно что я никогда с этим не сталкивался)
volvo
Цитата
странно по идее паскаль сам долже этим заниматься
Это смотря какой Паскаль еще... У тебя FPC? Там трюки с 0-м символом не проходят... 1000 раз говорили - не занимайтесь грязным хаком, используйте предназначенные для работы со строками процедуры, для переносимости...
klem4
Да, пробовал на FPC. Все получилось, а как по науке это сделать ?
volvo
Вот так:
uses crt;
var
s : string;
begin
clrscr;
s := 'TEST';
while length(s) < 20 do s := s + 'r'; { <--- }

writeln('s[6] = ', s[6]);
writeln('length(s) = ',length(s));
readln;
end.

Никакого Хака и работать должно на всех компиляторах...
Altair
Цитата
Строка изменяется, а длина остается прежней.

Вспомним молодость.... мой первый пост на форуме, на этом.. любимом (еще бы...) форуме!
неправильная работа со строками в TP7

ну разве мог я тогда подумать, зайдя на вот этот форум...Нажмите для просмотра прикрепленного файла
что будет все, что сейчас есть у меня... ?!?!

Не хватает только нашего AlaRic'a, ...

ну простите меня, модераторы за сентиментальность smile.gif
APAL
Цитата
1000 раз говорили - не занимайтесь грязным хаком, используйте предназначенные для работы со строками процедуры, для переносимости...


И я о том же:
Цитата
Он это делает сам если используешь методы обращения к строке, а не прямое ее изменение.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.