Главная страница
Навигация по странице:

  • Begin For var

  • Операции над символами и строками.

  • PascalABC.NET

  • Подпрограммы для работы с символами и строками

  • Лекция_Работа состроками. Лекция Работа со строками Символьный тип


    Скачать 24.26 Kb.
    НазваниеЛекция Работа со строками Символьный тип
    Дата26.06.2021
    Размер24.26 Kb.
    Формат файлаdocx
    Имя файлаЛекция_Работа состроками.docx
    ТипЛекция
    #221654

    Лекция: Работа со строками

    Символьный тип. Любой текст состоит из символов и строк. На языке Паскаль отдельные символы имеют тип Char. Символьный тип char на PascalABC.NET может хранится в виде Unicode-символа или в кодировке Windows (CP1251). (Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для русских версий Microsoft Windows до 10-й версии. В современных приложениях отдается предпочтение Юникоду (UTF-8). На 7 июля 2016 лишь на 1.8% всех веб-страниц используется Windows-1251.)

    Для преобразования между символами и их кодами в кодировке Windows (CP1251) используются стандартные функции Chr и Ord:

    Chr(n) - функция, возвращающая символ с кодом n в кодировке Windows;

    Ord(с) - функция, возвращающая значение типа byte, представляющее собой код символа c в кодировке Windows.

    Begin

    For var i:=1 to 255 do

    Write (Chr(i),'':1);

    Writeln;

    Writeln('Символ с кодом 255 =', Chr(255));

    Writeln('Порядковый номер символа Я =',ord('Я'))

    end.

    Для преобразования между символами и их кодами в кодировке Unicode используются стандартные функции ChrUnicode и OrdUnicode:

    ChrUnicode(w) - возвращает символ с кодом w в кодировке Unicode;

    OrdUnicode(с) - возвращает значение типа word, представляющее собой код символа c в кодировке Unicode.

    Var S:integer;Simbl:Char;

    Begin

    For var i:='А' to 'Я' do

    begin

    S:=OrdUnicode(i);

    Print(s);

    end;

    Println;

    For var w:=1040 to 1103 do

    begin

    Simbl:=ChrUnicode(w);

    Print(Simbl);

    end;

    End.

    Кроме того, выражение #число возвращает Unicode-символ с кодом число (число должно находиться в диапазоне от 0 до 65535).

    Аналогичную роль играют явные преобразования типов:

    char(w) возвращает символ с кодом w в кодировке Unicode;

    word(с) возвращает код символа c в кодировке Unicode.

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

    Строки PascalABC.Net могут иметь произвольную длину. К символам в строке можно обращаться, используя индекс: s[i] обозначает i-тый символ в строке, нумерация начинается с единицы. Если индекс i выходит за пределы длины строки, то генерируется исключение.

    Операции над символами и строками. Над строками определены операции сравнения: < > <= >= = <>. Сравнение строк на неравенство осуществляется лексикографически: s1 < s2 если для первого несовпадающего символа с номером i s1[i]
    Кроме этого, к строкам и символам применима операция конкатенации (слияния) +, ее результат имеет строковый тип.

    Например:

    var s: string := 'Петя';
    s := s+'Маша'; // s = 'ПетяМаша'.

    К строкам также применима расширенная операция присваивания +=, например, предыдущий оператор можно записать так:

    s +='Маша' ; // s = 'ПетяМаша'.

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

    s := 'Ширина: '+15; // s = 'Ширина: 15'
    s := 20.5+''; // s = '20.5'
    s += 1; // s = '20.51'

    Над строками и целыми определена операция *: s*n и n*s означает строку, образованную из строки s, повторенной n раз:

    s := '*'*10; // s = '**********'
        s := 5*'ab' // s = 'ababababab'
        s := 'd'; s *= 3; // s = 'ddd'   

    Строки реализуются типом System.String платформы .NET и представляют собой ссылочный тип. Таким образом, все операции над строками унаследованы от типа System.String. Однако, в отличие от .NET - строк, строки в PascalABC.NET изменяемы. Например, можно изменить s[i] (в .NET нельзя). Более того, строки string в PascalABC.NET ведут себя как размерные: после

    var s2 := 'Hello';
    var s1 := s2;
    s1[2] := 'a';

    строка s2 не изменится. Аналогично при передаче строки по значению в подпрограмму создается копия строки, т.е. обеспечивается поведение, характерное для Delphi Object Pascal, а не для .NET.

    Однако, строке можно присвоить nil, что необходимо для работы с NET-кодом.

    Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n - константа целого типа, указывающая длину строки. Размерные строки, в отличие от обычных, можно использовать как компоненты типизированных файлов. Для совместимости с Delphi Object Pascal в стандартном модуле описан тип shortstring=string[255].
    Подпрограммы для работы с символами и строками

    Имя и параметры

    Типы параметров

    Тип возвра-щаемого значе-ния

    Действие

    Length(s)

    s - string

    integer

    возвращает длину строки s

    Copy(s,index,count)

    s -string, index

     и count - integer

    string

    возвращает подстроку строки s длины count, начиная с позиции index

    Delete(s,index,count)

    s - string, index и count- integer

     

    удаляет в строке s count символов начиная с позиции index

    Insert(subs,s,index)

    s, subs – string, index - integer

     

    вставляет подстроку subs в строку s с позиции index

    Pos(subs,s)

    s, subs - string

    integer

    возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена)

    SetLength(s,n)

    s - string, n -integer

     

    устанавливает длину строки s равной n

    Str(x,s)
    Str(x:n,s)
    Str(x:n:m,s)

    s - string, x-integer, real и n, m - integer

     

    преобразует x к строковому представлению (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m) и записывает результат в строку s

    Val(s,v,code)

    s - string, v-integer, real и code - integer

     

    преобразует строку s к числовому представлению и записывает результат в переменную v. Если преобразование возможно, то в переменной code возвращается 0, если невозможно, то в codeвозвращается ненулевое значение

    Concat(s1,...,sn)

    s1,..., sn -string

    string

    возвращает строку, являющуюся результатом слияния строк s1,..., sn. Результат тот же, что у выраженияs1+s2+...+sn

    IntToStr(i)

    i - integer

    string

    преобразует целое число к строке

    StrToInt(s)

    s - string

    integer

    преобразует строку в целое число . Если преобразование невозможно, то возникает ошибка времени выполнения

    FloatToStr(r)

    r - real

    string

    преобразует вещественное число к строке

    StrToFloat(s)

    s - string

    real

    преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения

    UpCase(c)

    c - char

    char

    возвращает символ c, преобразованный к верхнему регистру

    LowCase(c)

    c - char

    char

    возвращает символ c, преобразованный к нижнему регистру

    UpperCase(s)

    s - string

    string

    возвращает строку s, преобразованную к верхнему регистру

    LowerCase(s)

    s - string

    string

    возвращает строку s, преобразованную к нижнему регистру

    Trim(s)

    s - string

    string

    возвращает копию строки s с удаленными лидирующими и заключительными пробелами

    TrimLeft(s)

    s - string

    string

    возвращает копию строки s с удаленными лидирующими  пробелами

    TrimRight(s)

    s - string

    string

    возвращает копию строки s с удаленными заключительными пробелами


    написать администратору сайта