ВУЗ:
Составители:
Рубрика:
21
4. Символьные множества
Множества символов заключается в апострофы: 'abcd'. В
Icon'е существуют следующие встроенные множества символов:
&ascii – 128 символов ASCII.
&cset – 256 символов.
&digits – цифры ('0123456789').
&lcase – множество символов латиницы в нижнем регистре.
&ucase – множество символов латиницы в верхнем регистре.
&letters – все символы латиницы (объединение &lcase и
&ucase).
4.1. Операции с множествами символов
-c – производит множество cset, состоящее из символов, не
встречающихся в c.
*c – число
элементов c.
c1**c2 – пересечение c1 с c2.
c1++c2 – объединение c1 и c2.
c1--c2 – «разность» между c1 и c2. Итоговое множество
включает только те символы из c1, которых нет в c2.
4.2. Принадлежит ли символ множеству? Функция any
any(c,s) – возвращает 2, если s[1] существует и является эле-
ментом множества c.
any(c,s,i) – возвращает i+1, если s[i] существует и является
элементом множества c.
22
5. Строки
S:="This is string"
Для того чтобы выбрать i-ый символ строки, следует рас-
сматривать строку как массив символов s:=S[i]. Вы можете при-
своить иное значение символу в строке, заданной переменной, но
не можете сделать то же самое для строки – литерала:
S[1]:="t" – допустимо. "This is string"[1]:="t" – недопустимо.
Значение индекса может быть отрицательным целым.
procedure main()
S:="This is string"
writes(S[1])
writes(" ",S[14])
writes(" ",S[-1])
end
Выход: T g g
5.1. Подстроки
Выделяя подстроки
индексированием, следует иметь в виду
неочевидное:
при указании индексов слева направо первый индекс есть
номер левого символа подстроки, второй – правый выбираемый
символ, указываемый как <порядковый номер> + 1;
при указании подстроки справа налево с использованием
отрицательных значений, 0 – есть крайний правый символ, -(n+1)
указывает на крайний левый выбираемый символ (n-ый справа).
……………………………………………….
S:="This is string"
write(S[9:15])# Получим на выходе
string.
write(S[0:-6])# Получим на выходе string.
write(S[15:9])# Получим на выходе string.
#Как видим, таким способом подстрока не реверсируется.
write(S[2:0])# Получим на выходе his is string
write(S[-1:1])# Получим на выходе This is strin
write(S[9:12])" Получим на выходе str
4. Символьные множества 5. Строки Множества символов заключается в апострофы: 'abcd'. В S:="This is string" Icon'е существуют следующие встроенные множества символов: &ascii – 128 символов ASCII. Для того чтобы выбрать i-ый символ строки, следует рас- &cset – 256 символов. сматривать строку как массив символов s:=S[i]. Вы можете при- &digits – цифры ('0123456789'). своить иное значение символу в строке, заданной переменной, но &lcase – множество символов латиницы в нижнем регистре. не можете сделать то же самое для строки – литерала: &ucase – множество символов латиницы в верхнем регистре. S[1]:="t" – допустимо. "This is string"[1]:="t" – недопустимо. &letters – все символы латиницы (объединение &lcase и Значение индекса может быть отрицательным целым. &ucase). procedure main() S:="This is string" 4.1. Операции с множествами символов writes(S[1]) -c – производит множество cset, состоящее из символов, не writes(" ",S[14]) встречающихся в c. writes(" ",S[-1]) *c – число элементов c. end c1**c2 – пересечение c1 с c2. Выход: T g g c1++c2 – объединение c1 и c2. c1--c2 – «разность» между c1 и c2. Итоговое множество 5.1. Подстроки включает только те символы из c1, которых нет в c2. Выделяя подстроки индексированием, следует иметь в виду неочевидное: 4.2. Принадлежит ли символ множеству? Функция any при указании индексов слева направо первый индекс есть any(c,s) – возвращает 2, если s[1] существует и является эле- номер левого символа подстроки, второй – правый выбираемый ментом множества c. символ, указываемый как <порядковый номер> + 1; any(c,s,i) – возвращает i+1, если s[i] существует и является при указании подстроки справа налево с использованием элементом множества c. отрицательных значений, 0 – есть крайний правый символ, -(n+1) указывает на крайний левый выбираемый символ (n-ый справа). ………………………………………………. S:="This is string" write(S[9:15])# Получим на выходе string. write(S[0:-6])# Получим на выходе string. write(S[15:9])# Получим на выходе string. #Как видим, таким способом подстрока не реверсируется. write(S[2:0])# Получим на выходе his is string write(S[-1:1])# Получим на выходе This is strin write(S[9:12])" Получим на выходе str 21 22
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »