Удаление последнего слова в строке

Задача

Требуется в произвольной строке удалить последнее слово, т.е. все символы после последнего пробела в строке.

Решение

 

Описание переменных: 

s – строка;
len – ее длина.

Алгоритм решения задачи: 

  1. Посимвольно просматриваем строку, начиная с конца.
  2. Как только встретится пробел, удаляем все символы от текущей позиции до конца строки и прерываем выполнение цикла.

Программа на языке Паскаль: 

 

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-го.

 

Тема

Строки

Уровень

Комбинированные задачи

Теги

Добавить комментарий