![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В реальных задачах часто встречаются объекты символьного типа – строки. Строка трактуется как последовательность символов. В состав строки могут входить буквы латинского алфавита, кириллица, цифры, всевозможные знаки, скобки, пробел и др. Каждый символ строки занимает 1 байт памяти (десятичный код от 0 до 255, зафиксированный в кодовой таблице ASCII).
Количество символов в строке называется ее длиной. Пустая строка имеет нулевую длину.
Строковая константа – последовательность символов, заключенных в двойные кавычки. Например:
”Это строковая константа”, ”123”.
Таким образом, при использовании в выражениях строка обязательно заключается в кавычки.
Два следующих друг за другом апострофа (””), обозначают пустую строку, т.е. строку с нулевой длиной.
Различают строки переменной и фиксированной длины. Строки переменной длины могут иметь длину до 2 Гбайт. Когда такой переменной присваивается значение, то размер переменной изменяется так, чтобы он соответствовал длине присвоенного строкового значения. Строка фиксированной длины – это строка постоянного размера, указанного при объявлении переменной. Если такой строке присваивается более длинное значение, то лишние символы отбрасываются, а если более короткое значение, то оставшееся справа место заполняется пробелами. Строковые переменные фиксированной длины должны объявляться явно.
Формат описания строковой переменой переменной длины:
Dim Имя_строки As String |
Формат описания строковой переменой фиксированной длины:
Dim Имя_строки As String*Длина строки |
Например:
Dim Name As String*20
Dim St As string
Операции над строками. Выражения, в которых операндами служат строковые данные, называются строковыми. Над строковыми данными допустимы операции сцепления и операции отношения.
Операция сцепления (конкатенации) «+» применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и строковые переменные.
Например:
”Бейсик, ” + ”Паскаль, ” + ”Си ” + ”–” + ”языки программирования”.
В результате операции сцепления «+» получится строка:
”Бейсик, Паскаль, Си – языки программирования”
Операции отношения =, <, >, <=, >=, <> позволяют выполнить сравнение двух строк, в результате чего получается логическое значение True или False. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.
Например:
Выражение | Результат |
”True1” > ”True2” | False |
”Student” > ”STUDENT” | True |
”Студент” <> ” Студент” | True |
”Группа” = ”Группа” | True |
Все остальные действия над строками и символами реализуются с помощью встроенных процедур и функций (табл.1.2).
Таблица 1.2
Функция (S- строка, X- число) | Назначение |
Len(S) | Возвращает количество символов в строке S Fio=”Иванов”: l=Len(Fio) Результат: l=6 |
Left(S,k) | Возвращает k символов с начала строки Fio=”Иванов”: t=Left(Fio,4) Результат: t=”Иван” |
Right(S,k) | Возвращает k символов с конца строки Fio=”Иванов”: T=Right(Fio,2) Результат: T=”ов” |
Mid(S,Pos,k) | Возвращает k символов из переменной S, начиная с позиции Pos, включительно Fio=”Иванов”: T=Mid(Fio,2,4) Результат: T=”вано” Эта функция часто используется для выдаления одного символа из строки: Mid(S,i,1) |
Val(S) | Преобразует строку S в десятичное число p=”-243.65”: S=Val(p)+100 Результат: S=-143.65 |
CInt(S) | Преобразует строку S в целое число p=”-243”: S=Val(p)+100 Результат: S=-143 |
Str(X) | Преобразует число X в строку символов с учетом знака. Если число положительное, вместо знака ставится пробел. a=123.45: b=-678: S=Str(b)+Str(a) Результат: S=”-678 123.45” |
СStr(X) | Преобразует числовое выражение X в строку символов. S=СStr(4-7/3) Результат: S=”4-7/3” |
Chr(N) | Возвращает символ, соответствующий числовому коду в таблице символов For i=65 to 90 Print Chr(i) Результат: Вывод заглавных букв латинского алфавита |
Asc(S) | Определяет числовой код первого символа в строке S: Print Asc(”123”): Print Asc(” 1a2m”) Print Asc(”ABC”) Результат: 49 32 65 |
InStr(n,S,S1) | Начиная с позиции n, определяет позицию первого появления подстроки S1 в строке S. Если такой подстроки нет, то возвращаемым значением функции будет ноль. x=”кукуруза”: y=”ку” Print Instr(1,x,y); Print Instr(2,x,y); Результат: 1 3 |
InStrRev(n,S,S1) | Определяет позицию первого появления подстроки S1 в строке S справа налево (начиная с конца строки) |
LTrim(S) | Удаляет пробелы, расположенные в начале строки |
RTrim(S) | Удаляет пробелы, расположенные в конце строки |
TRim(S) | Удаляет пробелы, расположенные в начале и в конце строки |
LCase(S) | Изменяет регистр букв исходной строки S на нижний |
UCase(x) | Изменяет регистр букв исходной строки S на верхний |
StrConv(S,p) | Изменяет регистр букв строки S, в зависимости от значения параметра p p =1, верхний регистр; p =2, нижний регистр; p =3, только первая заглавная |
StrReverce(x) | Изменяет порядок следования в строке на обратный |
Spase(n) | Возвращает строку, состоящую из n пробелов |
Replase (S,S1,S2,n,k) | Заменяет в строке S подстроку S1 на подстроку S2, начиная с позиции n. k - количество замен, если значение k не указано, то заменяются все вхождения S1 в S. Эта функция используется также для удаления подстрок: s=”121113” Print Replace(s,”1”,””) ’Удаляется ’подстрока ”1” Результат: 23 |
Строку символов всегда можно преобразовать в одномерный массив отдельных символов, расщепив ее при помощи функции Mid или Split. После этого со строкой можно работать точно так же как и с одномерным массивом. После обработки массива, его элементы следует обратно слить в строку при помощи операции сцепления.
Дата публикования: 2014-12-28; Прочитано: 202 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!