Перевести страницу

Создание приложений для науки и производства ещё не было таким простым

Строка (str)

Имя типа str. Данное этого типа содержит строку символов длиной до 256 символов ASCII, каждый имеет размер 1 байт. UNICODE базовой реализацией не поддерживается. Начальное значение переменной: "" (пустая строка).


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

    "строка с символами двойной \" и одинарной \` кавычек"

при выполнении программы будет иметь представление:

    строка с символами двойной " и одинарной ` кавычек


Строка может содержать управляющие символы, аналогично строкам языка C: перевод строки '\n', табуляцию '\t', символ с десятичным или шестнадцатеричным кодом: '\100', '\0xae' и т.д. Компилятор Ci преобразует эти символы во внутреннее представление. Для включения в строку символа обратной дробной черты необходимо указывать его дважды (об этом надо помнить при написании имен файлов в ОС Microsoft Windows). Если необходимо включить в строку спецсимвол языка, его также необходимо предварять обратной дробной чертой. С особой осторожностью следует использовать внутри строк символ с кодом '\0x00', поскольку он распознается используемыми библиотечными функциями, как конец строки. В то же время, строки Ci не ограничиваются только этим символом. Общая рекомендация: следует тщательно избегать появления этого символа внутри строки.


Строки можно присваивать и сравнивать. При сравнении двух строк на больше или меньше соответствующие операции возвращают корректные значения. Сравнение строк производится слева направо, больше та строка, у которой больше код символа в текущей позиции, или та строка, которая длиннее, если символы одинаковы. То есть, строка "abcd" меньше, чем строка "abcf", а строки "accd" и "abcfa" больше. Символ в верхнем регистре меньше, чем тот же символ в нижнем регистре.


Строка хранится в буфере, выделяемом при ее создании. Длина буфера константных строк равна длине сохраняемой строки плюс один байт (в нем хранится завершающий строку ноль). Для переменных типа строка буфер выделяется с размером, установленным для строк по умолчанию, то есть 256 символов плюс один байт.


Строки в Ci динамические, это означает, что процессор и соответствующие операции заботятся о корректности сохраняемых строк при выполнении над ними сложных операций. Например, таких, как вставка одной строки в середину другой.


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

  • "+24.516" – корректное представление вещественного числа;

  • "457ф" – НЕКОРРЕКТНОЕ представление числа.

В первом случае преобразование строки в вещественное число произойдет без проблем, во втором будет выдана ошибка. Причем момент ее появления различен – если компилятор обнаружит некорректную строчную константу там, где ожидалось численное значение, он прекратит компиляцию с ошибкой. Но если строчная переменная в момент преобразования будет содержать некорректное значение, то программа будет прервана уже на этапе выполнения.


В базовом комплекте производятся преобразования строк в данные типа uint, int и float. Преобразование из строки в логическое не поддерживается, чтобы избежать возможных ошибок в Ci программе.


Примеры правильных строк:

    "строка символов"

    "строка\nсимволов"

    "\0xaa\0xab\0x20\0xdf\n"

    "строка с\tтабуляцией"