Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Данные строкового типа



В реальных задачах часто встречаются объекты символьного типа – строки. Строка трактуется как последовательность символов. В состав строки могут входить буквы латинского алфавита, кириллица, цифры, всевозможные знаки, скобки, пробел и др. Каждый символ строки занимает 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...