Сравнить две строки паскаль
Строки в паскале . Тип String
Итак, что такое строка? Фактически строка — это массив, состоящий из символов. В строку могут входить все ASCII-символы (эти символы показаны в конце статьи). То есть машина, улица-сезам, три головы,13 стульев, 12ррр443р43г. **:па,542″№;%:? а а 69866 — все это строки. Строки объявляются так
Как вы видите, длину строки можно как указать, так и оставить неуказанной. Однако тут следует запомнить,что максимальная длина строки — 255 символов и больше вы в одну строку ну никак не запихнете. То есть, когда вы не указываете размер строки — она принимает максимальный размер в 255 символов. Обратиться к символу в строке просто — необходимо только знать его порядковый номер. Порядковый номер начинается с 1 и заканчивается соответственно 255 (помним, что строка не может быть длиннее 255 символов). Например имеем строки
Этот пример показывает, что строка может состоять из любых символов кодировки ASCII. Обратите внимание! Пробел также считается символом.Например строка g состоит из одного символа — пробела. Также существует ситуация, когда в строке совсем нет символов. Тогда говорят,что строка содержит пустой символ. В нашем примере это строка d. Следует также добавить, что стандартный Turbo Pascal не поддерживает кириллицу (русские буквы) в отличие от PascalABC и Free Pascal, которые без проблем работают с ними.
Идем дальше. В паскале со строками можно производить различные действия, а именно производить слияние (или как еще говорят конкантенацию) и сравнивать . произвести слияние просто: нам просто потребуется прибавить одну строку к другой, однако следует обратить внимание, что к чему прибавлять. Смотрим пример
Теперь о сравнении строк. Тут дело обстоит немного сложнее. Cледует запомнить, что сравнение строки производится слева направо и обязательно посимвольно. Это значит, что в первую очередь надо сравнить первые элементы, затем вторые, третьи и т.д. Если при посимвольном сравнении сравнивается пустой символ и любой другой символ, то пустой символ всегда будет меньше. Теперь самое главное. Сравнивают не сами символы а коды этих символов: чей код больше, тот символ и будет «больше». Таблица символов представлена ниже.
Для наглядности сравним несколько строк. Имеем
Источник
Pascal-Паскаль
Программирование. Строки и символы Pascal-Паскаль
- Скачено бесплатно: 14583
- Куплено: 414
- Pascal-Паскаль->Программирование. Строки и символы Pascal-Паскаль
Программирование. Строки и символы Pascal-Паскаль
Строки Pascal-Паскаль
Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:
- Общая длина строки, которая характеризует размер памяти, выделяемый строке при описании;
- Текущая длина строки (всегда меньше или равна общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени.
Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.
Код ASCII (American Code for Information Interchange – Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение. Основной стандарт использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта используются символы псевдографики и буквы национальных алфавитов.
32 пробел | 48 0 | 64 @ | 80 P | 96 ` | 112 p |
33 ! | 49 1 | 65 A | 81 Q | 97 a | 113 q |
34 « | 50 2 | 66 B | 82 R | 98 b | 114 r |
35 # | 51 3 | 67 C | 83 S | 99 c | 115 s |
36 $ | 52 4 | 68 D | 84 T | 100 d | 116 t |
37 % | 53 5 | 69 E | 85 U | 101 e | 117 u |
38 & | 54 6 | 70 F | 86 V | 102 f | 118 v |
39 ‘ | 55 7 | 71 G | 87 W | 103 g | 119 w |
40 ( | 56 8 | 72 H | 88 X | 104 h | 120 x |
41 ) | 57 9 | 73 I | 89 Y | 105 i | 121 y |
42 * | 58 : | 74 J | 90 Z | 106 j | 122 z |
43 + | 59 ; | 75 K | 91 [ | 107 k | 123 < |
44 , | 60 | 78 N | 94 ^ | 110 n | 126 |
47 / | 63 ? | 79 O | 95 _ | 111 o | 127 |
Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например, ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (») обозначают пустую строку, т.е. строку с нулевой длиной.
Описание строковой переменной Паскаля
Для описания строковых переменных в Паскале существует предопределенный тип string.
В общем виде описание строковой переменной будет выглядеть следующим образом:
Пример описания строковой переменной в Паскале:
В приведенном выше описании строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..
Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер, так же как это делается в одномерных массивах. Например, s1[2] позволяет обратиться ко второму символу в строке s1, при этом мы можем поменять это значение, выполнив оператор присваивания s1[2]:= ‘r’, можем вывести на экран это значение или присвоить его другой переменной.
Действия со строками в Паскале
Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.
Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше ( =), меньше или равно ( Пример действий со строками в Паскале:
‘строка’<>‘строки’ (верно, т.к. не совпадают последние символы);
‘Abc’ ‘век’ (отношение верно, т.к. буква ‘г’ в алфавите стоит после буквы ‘в’, а, следовательно, имеет больший код).
Стандартные функции для работы со строками в Паскале
Copy (S, poz, n) выделяет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – любое строковое выражение, poz, n – целочисленные выражения.
Значение S | Выражение | Результат |
‘строка символов’ | Copy(S,3,3) | рок |
Concat (s1, s2. sn) выполняет слияние строк s1, s2. sn в одну строку.
Выражение | Результат |
Concat(‘язык’, », ‘Pascal’) | ‘язык Pascal’ |
Length(S) определяет текущую длину строкового выражения S. Результат – значение целого типа.
Значение S | Выражение | Результат |
‘(а+в)*с’ | Length(s) | 7 |
Pos(subS, S) определяет позицию первого вхождения подстроки subS в строку S. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.
Значение S | Выражение | Результат |
‘предложение’ | Pos(‘е’, S) | 3 |
‘предложение’ | Pos(‘a’, S) |
Стандартные процедуры для работы со строками в Паскале
Delete (S, poz, n) удаляет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – строковая переменная (в данном случае нельзя записать никакое другое строковое выражение, кроме имени строковой переменной, т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения.
Исходное значение S | Оператор процедуры | Конечное зн-е S |
‘abcdefg’ | Delete(s, 2, 3) | ‘aefg’ |
Insert(subS, S, poz) вставляет в строку S, начиная с позиции poz, подстроку subS. Здесь subS – любое строковое выражение, S – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение.
Исходное значение S | Оператор процедуры | Конечное зн-е S |
‘рис. 2’ | Insert(‘№’, S, 6) | ‘рис. №2’ |
Процедуры преобразования типов в Паскале
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.
Оператор процедуры | Значение S |
Str (sin(1):6:4, S) | ‘0.0175’ |
Str (3456, S) | ‘3456’ |
Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.
Тип X | Оператор процедуры | Значение X | Значение kod |
Real | Val(‘12.34’, x, kod) | 12.34 | |
Integer | Val(‘12.34’, x, kod) | 12 | 3 |
Программирование
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
Источник
Сравнение двух строк
Даны две строки Str1 и Str2. Выясните, можно ли строку Str2 получить из строки Str1 вычеркиванием некоторых символов.
Не могу допетрить как это сделать, помогите кто чем может.
Сравнение двух строк
Напишите функцию bool Compare(string S1, string S2), определяющую, совпадают ли 2 строки. .
Если сумма двух первых строк матрицы А меньше суммы элементов двух последних её строк
Если сумма двух первых строк матрицы А меньше суммы элементов двух последних её строк. Изменить.
Сравнение двух строк
Сравнение двух строк Как прервать цикл если введена пустая строка? Если : char str=»\n»; if.
Сравнение двух строк
Здравствуйте! возникла у меня небольшая проблема со сравнением двух строк разных типов. А точнее -.
Решение
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Сравнение двух строк
помогите пожалуйста с заданием Даны две строки по длине не превышающие 255 символов. Определить.
Сравнение двух строк
Подскажите сравниваю две строки получаю отрицательный результат на одинаковых строка. Как так может.
Сравнение двух строк
Добрый день, подскажите пожалуйста, у меня есть две строки «12:45:21» и «14:43:45» можно их как то.
Сравнение двух строк
#include #include using namespace std; int main() < string.
Источник
Pascal: Занятие № 11. Строковый тип данных в Паскаль
Символьный тип char в Паскале
Символьной переменной соответствует тип char:
Инициализация символьной переменной:
Основные функции для работы с символами
Функция преобразует целое число, имеющее тип BYTE, в один символ ASCII-кода:
Функция возвращает порядковый номер символа параметра в таблице ASCII:
var i: integer; begin for i:=32 to 255 do write(chr(i):3); end.
Строковые переменные в Паскаль
Строковые переменные в Паскале имеют тип String
Объявление и инициализация строковой переменной:
var a:string; begin a:=’Привет всем!’; writeln(a); end.
Ввод значения строковой переменной с клавиатуры:
var a:string; begin writeln(‘Введите слово’); readln(a); writeln(‘Вы ввели слово ‘,a); end.
Строка «рассматривается» компилятором, как массив букв:
Функции работы со строками в Pascal
Исходные данные | Операция | Результат |
---|---|---|