Строковый тип данных
Как и в случае типа char, значения строковых переменных задаются в символах ' (апостроф). При выводе на экран, например, с помощью операторов write и writeln, строки выводятся «как есть». Если в строке должен присутствовать апостроф, то его нужно удвоить. Например: Val (stroka, variabl, variabl_err); — преобразует строковое представление целого или вещественного числа stroka к числовому значению… Читать ещё >
Строковый тип данных (реферат, курсовая, диплом, контрольная)
Основные сведения
Строковый тип данных представляет собой множество символов типа char и используется для хранения и обработки текстовой информации. Объявление переменной строкового тина имеет вид имя_переменной:string; или имя_переменной:string[число].
Во втором случае указывается максимальная длина текстовой строки.
Как и в случае типа char, значения строковых переменных задаются в символах ' (апостроф). При выводе на экран, например, с помощью операторов write и writeln, строки выводятся «как есть». Если в строке должен присутствовать апостроф, то его нужно удвоить. Например:
а:='Hello world!';, writeln ('It1's overflow!');.
Важно!
Два подряд идущих апострофа не следует путать с символом «(двойные кавычки).
Обратиться к отдельному символу строковой переменной можно по его индексу, используя конструкцию вида имя_переменной [ индекс ].
Индекс первого символа строки равен 1. Например, вывести на экран строковую переменную, а из предыдущего примера можно следующим образом:
for i:-l to 12 do write (a[i]) ;.
Если индекс символа строки превышает ее длину, при транслировании программы произойдет ошибка.
В Turbo Pascal длина строки по умолчанию нс может превышать 255 символов. В PascalABC.NET строки могут иметь произвольную длину.
В отличие от написания идентификаторов п зарезервированных слов, прописные и строчные буквы в строках различаются, поэтому строки 'Му 1 и ' ту ' будут различными.
Над данными строкового типа можно выполнять следующие операции.
1. Конкатенация (или слияние). Обозначается символом +. Например, ' Му' + ' name' + ' is 1 даст в результате строку ' Mynameis '. Для того чтобы получить строку с пробелами между словами, их можно добавить вручную, например,.
'Му 1 + ' 1 + 1 name' + ' ' + ' i s'.
Конкатенацию также можно осуществить, используя встроенную функцию.
concat (si, s2 ,…, sN) ;,.
которая возвращает результат слияния строк si, s2 ,…, sN.
К строкам применима расширенная операция присваивания +=. Например, выражение s +=sl; аналогично s: =s + sl;.
2. Операции сравнения = и. Результат этих операций имеет логический тип (true — истина, false — ложь). Сравнение строк происходит посимвольно слева направо. Две строки считаются равными, если они полностью идентичны. Примеры сравнения строк приведены в листинге 7.1. В комментариях указан результат выполнения.
Листинг 7.1.
writeln ('abed' = 'abed1); // true.
writeln ('abed'='abce1); // false.
writeln {'abed' o’Abed'); // true.
3. Операции отношения, =. Сравнение строк происходит посимвольно слева направо. Меньшей строкой является та, у которой первый несовпадающий символ имеет меньший код в кодовой таблице. Если длина сравниваемых строк различна, но общая часть у них совпадает, то меньшей считается короткая строка. Примеры сравнения строк приведены в листинге 7.2. В комментариях указан результат выполнения.
Листинг 7.2.
writeln ('efg'<'abed'); // false writeln ('abc''abed'); // true writeln ('abc'<='aBc7); // false writeln ('bed'>='bcD'); // true.
- 4. Встроенные функции, реализованные как в Turbo Pascal, гак и в PascalABC.NET:
- • length (stroka); — возвращает длину строки stroka;
- • insert (vst_stroka, stroka, position); — вставляет подстроку vst_stroka в строку stroka, начиная с позиции position;
- • delete (stroka, posit ion, count); — удаляет из строки stroka количество count символов, начиная с позиции position;
- • copy (stroka, posit ion, count,); — возвращает подстроку строки stroka длины count, начиная с позиции position;
- • pos (podstroka, stroka) — возвращает позицию подстроки pods t г oka в строке stroka; если pods troka не найдена, возвращается 0;
- • val (stroka, variabl, variabl_err); — преобразует строковое представление целого или вещественного числа stroka к числовому значению и записывает его в переменную variabl. Если преобразование выполнено успешно, то в переменную variabl_err записывается 0, иначе — значение >0;
- • str (number, stroka); — преобразует целое или вещественное число number в строку и записывает результат в строку stroka.
- 5. Встроенные функции, реализованные только в PascalABC.NET:
- • posex (podstroka, stroke [, posit ion]) — возвращает позицию подстроки podstroka в строке stroka, начиная с позиции position. Если podstroka не найдена, возвращается 0. Если аргумент position не указан, то он считается равным 1;
- • lowercase (stroka); и uppercase (stroka); — возвращает строку stroka в нижнем и верхнем регистре соответственно;
- • reversestring (stroka); — возвращает инвертированную строку stroka;
- • leftstr (stroka, count); и right str (stroka, count); — возвращает count первых и последних символов соответственно строки stroka.