Лекция_Работа состроками. Лекция Работа со строками Символьный тип
Скачать 24.26 Kb.
|
Лекция: Работа со строками Символьный тип. Любой текст состоит из символов и строк. На языке Паскаль отдельные символы имеют тип 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]. Подпрограммы для работы с символами и строками
|