Решите задачу на PascalABC.net; 70 баллов!!!!
Дано целое число K и текстовый файл. Удалить из каждой строки файла первые K символов(Если длина строки меньше K, то удалить из неё все символы)
Решение на PascalABC.net
Ответы
Ответ дал:
1
begin
var k := ReadInteger('K =');
var a := ReadAllLines('test1.txt').Select(s -> s?[k + 1:]).ToArray;
WriteAllLines('test2.txt', a);
Print('Работа завершена')
end.
LRSM:
Можете объяснить действие " s?[k + 1:] " ?
Могу, конечно. Операция s?[k+1:] требует выполнить "безопасный срез" строки s. Срез вида [p:] возвращает часть строки, начиная с символа номер p и до ее конца. Но если p находится за пределами строки, возникает ошибка. Значок "?" - признак "безопасности" среза, когда вместо возникновения ошибки срез не выполняется и возвращается исходная строка.
Безопасный срез еще называеют "мягким". Подробнее о срезах Вы можете прочитать в книге http://pascalabc.net/downloads/OsipovBook/КнигаДляСайта.pdf на стр. 180-183 и 222-223
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад
7 лет назад
7 лет назад
9 лет назад
9 лет назад