Basic 1969 г.

Глава 8 - строки символов.


Глава 8

Строки символов

Краткое содержание: сечения, использование ТО

примечание: эти операции отсутсвуют в стандартном бейсике.
Пусть имеется строка символов, тогда ее подстрокой будет неко-

тора* последовательность символов иэ этой строки. Так ''STRING''
является подстрокой от "BIG- GER STRING" , а "В STRING" и
"BIG STRING" не являются.

Существует действие, называемое сечением для определения
подстрок и которое может применяться к строковым выражениям. Об-
щая его форма:

'строковое выражение ' ('начало' то 'конец'')
следующее .выражение истинно:

"ABCDEF" (2 ТО 5) « "BCDE"
Если опущено 'начало', то по умолчанию подразумевается I, если -
'конец', то подразумевается длина всей строки. Так:

"ABCDEF" (ТО 5) • "ABCDEF" (l ТО 5) « "ABCDB"
"ABCDEF" (2 ТО) ■ "ABCDEF" (2 ТО 6) «"BCDEF"
"ABCDEF" (ТО) • "ABCDEF" (1 ТО б) ■ "ABCDEF"
Последнее выражение можно было бы записать и так:

"ABCDEF" (),
что тоже верно, можно опускать и слово то:

"ABCDEF" (3) » "ABCDEF (3 ТО 3) - "С"
'Начало' и 'конец' должны находиться в пределах строки, и ина-
че будет выдано сообщение об ошибке. Так, выражение

''ABCDEF'' (5 ТО 7)
Вызывает сообщение '3 SUBSCRIPT WRONG', так как 'конец' превышает
длину строки (6). Если 'начало' больше, чем 'конец', либо обе
границы лежат за пределами строки, то результатом будет пустая
строка:

''ABCDEF'' (8 ТО 7) » " "
''ABCDEF'' (I ТО 0) » " "
'Начало' и 'конец' не могут быть отрицательными, иначе выда-
ется сообщение 'в INTEGER OUT OF RANGE'.

Следующая программа иллюстрирует эти правила:
10 LET А* • "ABCDEF"
20 FOR N»1 ТО 6
30 PRINT AS (N TO 6)
40 NEXT N
5 0 STOP

Можно также присваивать значения подстроке, попробуйте:
10 LET AS » " I AM TNE ZX SPECTRUM"
20 PRINT A*
30 LET A* (5 TO 8) »
40 PRINT AS

Подстрока A* (5 то 8) имеет д^ину только в 4 символа, поэтому
будут использованы только первые четыре звездочки, это особен-
ность присвоения значения подстроке: длинные данные усекаются
справа, а короткие дополняются пробеламй до длины подстроки, это
действие называют прокрустианом. Если теперь вы выполните:
LET А» () * "NELLO THERE"

и

PRINT А»; " . "
Вы увидите, что будут выведены дополнительные пробелы, так как
'AS () ' считается подстрокой, для правильного выполнения следует
писать:

LET AB • "HELLO THERE"
Можно использовать скобки, что позволяет вычислять значение
строкового выражения перед тем, как брать сечение, например:
"ABC" + "DEF" (1 ТО 2) * "ABCDE"
("ABC" + "DEF") (1 ТО 2) » "АВ"




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
BBS NEWS - График работы BBS на неделю.
Тeндeнции рaзвития Spectrum'a нa ceгoдняшний дeнь - "Эпoхa" - cтeчeниe нeких oбcтoятeльcтв, oбъeдинённых oбщeй ocoбeннocтью и длящeecя кaкoe-тo врemя - тaк бы я oхaрaктeризoвaл этo cлoвo.
TOP10 - десятка лучших игрушек для Спектрума на 20 марта 1998 года.
Письмо №275
Двигатель торговли - Пpиобpету схему паpаллельного поpта на ВВ55, ноpмально pаботающую со Скоpпионом-256.

В этот день...   28 апреля