String39. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
program String39; var S:string; poz1,poz2,i:integer; begin Write('S:'); Readln(S); poz1:=pos(' ',S); delete(S,poz1,1); poz2:=pos(' ',S); Writeln(copy(S,poz1,poz2-poz1)); end. |
Другие задачи из раздела String можно посмотреть здесь.
Я не вполне понимаю, как это работает в PascalABC.NET, но это работает. Например если строка содержит единственный пробел последним символом, то почему не происходит ошибки выхода индекса за пределы диапазона строки в Pos(‘ ‘, s, i + 1), если, например, в Pos(‘ ‘, s, i + 2) уже выдает такую ошибку.