Удалить из строки числа - PascalABC.NET
Формулировка задачи:
Подскажите, как удалить из строки числа, которые больше n. Как это сделать циклом(Идти в цикле, пока не встречу букву, как только встретил, проверить выбранное число < или > n)
На пример:
n=15
s=a1g4gh16j45u4
Ответ:a1g4ghju4
Решение задачи: «Удалить из строки числа»
textual
Листинг программы
function addSN(n : Integer; sn : String) : String := (sn.Length > 0 ? (n >= sn.ToInteger ? sn : '') : ''); begin var n := 15; var s := 'a1g4gh16j45u4'; var r : String := ''; var sn : String := ''; for var i := 1 to s.Length do if (s[i] > #47) and (s[i] < #58) then sn += s[i] else begin r += addSN(n, sn); sn := ''; r += s[i]; end; r += addSN(n, sn); WriteLn(r); end.
Объяснение кода листинга программы
В данном коде представлена функция addSN, которая принимает два аргумента: целочисленный аргумент n и строковый аргумент sn. Эта функция возвращает строку.
Внутри функции определены следующие переменные:
n- целочисленная переменная со значением 15.sn- строковая переменная со значениемa1g4gh16j45u4.r- строковая переменная, которая инициализируется пустой строкой и используется для накопления результата. Затем следует цикл, который проходит по каждому символу строкиs. Если текущий символ является числом (больше #47 и меньше #58), то он добавляется в строкуsn. Если текущий символ не является числом, то выполняются следующие действия:- К строке
rдобавляется результат вызова функцииaddSNс аргументамиnиsn. - Строка
snочищается. - К строке
rдобавляется текущий символ. После завершения цикла, к строкеrдобавляется результат вызова функцииaddSNс аргументамиnиsn. Наконец, результат выводится на экран. Похоже, что данная функция предназначена для удаления чисел из строки.