Требуется в произвольной строке удалить последнее слово, т.е. все символы после последнего пробела в строке.
s – строка;
len – ее длина.
var s: string; len,i: byte; begin write('String: '); readln(s); len := length(s); for i:=len downto 1 do if s[i]=' ' then begin delete(s,i,len-i+1); break; end; writeln(s); readln end.
Если не использовать инструкцию break, то цикл продолжит выполняться и постепенно удалит все слова из строки за исключением первого.
Выражение len-i+1 дает в результате длину удаляемой части. Например, если длина строки равна 10, просматривается 7-й символ, и он оказывается пробелом, то приведенное выше выражение вернет 4. Будет удалена подстрока из 4-х символов, начиная с 7-го.
Последние комментарии
1 день 2 часа назад
1 день 18 часов назад
2 дня 3 часа назад
2 дня 4 часа назад
2 дня 16 часов назад
3 дня 6 часов назад
3 дня 14 часов назад
4 дня 56 мин. назад
4 дня 4 часа назад
4 дня 7 часов назад