Символ из строки
Строка тоже читается по адресу: номер символа вместо номера места, код символа вместо значения
Третий, кого умеет читать read, — обычная строка. Адрес здесь номер символа, а ответ — его
код, число:
read код "mlog" 0В код окажется 109 — это m. Не буква, а именно число: отдельного вида «символ» в mlog
нет вовсе.
Программа проходит строку по символам и складывает их обратно через printchar. На табло
появится mlog — та же строка, только собранная посимвольно.
Зачем, если строку нельзя даже склеить
Заголовок раздела «Зачем, если строку нельзя даже склеить»Строки в mlog почти неподвижны: их нельзя ни соединить, ни сравнить, ни обрезать. Единственное, что с ними можно делать, — печатать целиком и разбирать по символам. Отсюда и применения:
- вывести текст по буквам — бегущая строка на табло, по букве за итерацию;
- разложить строку на коды и сложить их в память, чтобы потом собрать в другом порядке;
- достать один символ из заготовленного набора:
read код "0123456789" цифрапревращает число в код его цифры.
Границы те же, что у памяти
Заголовок раздела «Границы те же, что у памяти»| Адрес | Что будет |
|---|---|
0 … длина минус один |
код символа |
| длина и больше | пустота |
| отрицательный | пустота |
| дробный | усекается: 2.9 это символ 2 |
Длину строки узнать нечем — инструкции «сколько символов» в языке нет. Поэтому цикл по строке либо знает длину заранее, либо идёт до первой пустоты:
read код "mlog" номерjump 5 strictEqual код nullprintchar кодop add номер номер 1jump 0 alwaysprintflush message1Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.