Перейти к содержимому

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

Строка тоже читается по адресу: номер символа вместо номера места, код символа вместо значения

среднийНужно знать: Ячейка памяти, Print Char

Третий, кого умеет читать read, — обычная строка. Адрес здесь номер символа, а ответ — его код, число:

read код "mlog" 0

В код окажется 109 — это m. Не буква, а именно число: отдельного вида «символ» в mlog нет вовсе.

тик 0
Чтение0
=
Печать знака1
знак
Операция2
=
Прыжок -> 03
если
Вывод печати4
Стоп5
@counter0number
кодnullnull
номерnullnull

Программа проходит строку по символам и складывает их обратно через printchar. На табло появится mlog — та же строка, только собранная посимвольно.

Строки в mlog почти неподвижны: их нельзя ни соединить, ни сравнить, ни обрезать. Единственное, что с ними можно делать, — печатать целиком и разбирать по символам. Отсюда и применения:

  • вывести текст по буквам — бегущая строка на табло, по букве за итерацию;
  • разложить строку на коды и сложить их в память, чтобы потом собрать в другом порядке;
  • достать один символ из заготовленного набора: read код "0123456789" цифра превращает число в код его цифры.
Адрес Что будет
0 … длина минус один код символа
длина и больше пустота
отрицательный пустота
дробный усекается: 2.9 это символ 2

Длину строки узнать нечем — инструкции «сколько символов» в языке нет. Поэтому цикл по строке либо знает длину заранее, либо идёт до первой пустоты:

read код "mlog" номер
jump 5 strictEqual код null
printchar код
op add номер номер 1
jump 0 always
printflush message1

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.