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) » "АВ"




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Письма - Об атрибутном эффекте в 5 номере.
Архив - О программах существующих для ПК "ZX-SPECTRUM": AMAUROTE, ATIC ATAC, ALIEN HIGHWAY, ACE 2088, RESCATE ATLANTIDA part 1 & 2.
О разном - сетевые новости из Москвы и не только.
Реклама - Реклама и объявления ...
Реклама - S0B0S froм AREAsoft group прeдлагаeт всeм пeрeписку и oбмeн PROG`Sами !

В этот день...   21 ноября