Меню

Сравнить две строки паскаль



Сравнить две строки паскаль

Строки в паскале . Тип 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

var s:string[30]; n,i:integer; begin writeln(‘введите текст’); readln(s); n:=0; for i:=1 to length(s) do if s[i]=’f’ then n:=n+1; write(‘в тексте букв f = ‘,n) end.

* Задание повышенной сложности: запросить у пользователя ввести подстроку, которую требуется удалить из исходной строки.

* усложненный вариант: предусмотреть, что в начале или в конце введенной строки введен пробел

const m = [‘0’..’9′]; var s: string; i, k: byte; begin read(s); k := 0; for i := 1 to length(s) do if s[i] in m then inc(k); writeln(‘цифр = ‘, k); readln; end.

var a,b,c:string; i:longint; begin write(‘введите слово:’); readln(a); b:=»; for i:=1 to length(a) do b:=a[i]+b; if a=b then write(‘перевертыш’) else write(‘не перевертыш’); end.

String 6. Определить, встречается ли в тексте сочетание букв «ку».

String 7. Заменить данную букву в слове другой буквой (буквы вводит пользователь).

  • После того как строка считывается (вводится), измеряется ее длина (функция length).
  • Далее стока просматривается посимвольно в цикле while или for .
  • Если символ строки входит в множество букв ( const letters=[‘a’..’z’]; ), то этот символ прибавляется к первому элементу массива слов строки ( . array [1..100] of string ).
  • Если символ равен пробелу, то увеличиваем счетчик для массива слов и переходим к следующей итерации цикла.

  • В цикле до конца длины строки выполняем: если текущий символ строки — не пробел, то формируем элемент массива arrayS ( arrayS: array[1..100] of string; строковый массив — будущий массив из слов предложения). Добавляя каждую букву к элементу arrayS[k].
  • При достижении пробела переходим к следующему элементу arrayS[k] и начинаем формировать следующее слово.
  • После того, как массив из всех слов arrayS сформирован: выполняем сортировку массива по длине букв в словах.

    Примечание:
    Использовать функции: Pos, Copy, Delete

    Пример:

    Трудность низкая:
    Программа должна формировать в памяти вторую строковую переменную с измененным текстом, а потом выводить ее на экран.

    Трудность высокая:
    Программа должна преобразовывать исходную строку без использования дополнительных переменных, и затем выводить ее на экран.

    А теперь рассмотрим олимпиадное задание по Паскалю:

    * Решить ту же задачу, в которой сдвиг будет не на 3 позиции, а на k , причем отрицательное значение является признаком сдвига влево, положительное — вправо.

    var a:char; i,n:byte; s,s1:string; begin s1:=»; readln(s); for i:=1 to length(s) do begin n:=ord(. ); n:=n+3; if n=123 then n:=97; <в ASCII 120 - x, 97 - a>if . ; <в ASCII 121 - y, 98 - b>if . ; <в ASCII 122 - z, 99 - c>a:=chr(. ); s1:=. ; end; writeln(s1) end.

    var a:char; i,n:byte; s,s1:string; begin s1:=»; readln(s); for i:=1 to length(s) do begin n:=ord(s[i]); n:=n+3; if n=123 then n:=97; <в ASCII 120 - x, 97 - a>if n=124 then n:=98; <в ASCII 121 - y, 98 - b>if n=125 then n:=99; <в ASCII 122 - z, 99 - c>a:=chr(n); s1:=s1+a; end; writeln(s1) end.

    Посимвольный ввод до пробела

    Посимвольный ввод удобен для «мгновенной» обработки символов в строке.

    Для организации массива символьных строк:

    Пример:

    1. Все данные разделяются одним пробелом. Нужно подсчитать, сколько студентов получили отметку 5.
    2. Вывести фамилии студентов, у которых оценка 2.
    3. Вывести фамилии студентов, родившихся в 1996 году.

    Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

    Источник

    Сравнение строк

    Сравнение строк
    Оч мало времени, по этому прошу помощи. Есть задача: Программа должна проверять.

    Сравнение строк по буквам
    Здравствуйте, помогите, пожалуйста, с кодом. Пользователь задает строку, происходит инверсия(это я.

    Сравнение двух строк
    Даны две строки Str1 и Str2. Выясните, можно ли строку Str2 получить из строки Str1 вычеркиванием.

    Посимвольное сравнение строк. Тест по-английскому
    У меня есть 2 файла, в них записаны слова по одному в строке. Первый файл с английскими словами.

    Решение

    Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

    Построчное сравнение строк массива с остальными строками
    Здравствуйте, уважаемые участники форума. Напишите, пожалуйста, программу. Прочитать прямоугольную.

    Сравнение двух строк
    Напишите функцию bool Compare(string S1, string S2), определяющую, совпадают ли 2 строки. .

    Сравнение и смена местами строк в двумерном массиве
    Возникли проблемы с разработкой алгоритма. Пример: Допустим есть двумерный массив типа.

    Для матрицы из 6 строк и 5 столбцов отпечатать номера тех строк, сумма элементов которых кратна заданной величине, и число таких строк.
    Для матрицы из 6 строк и 5 столбцов отпечатать номера тех строк, сумма элементов которых кратна.

    Источник

    Читайте также:  Каковы особенности развития рыб по сравнению с ранее изученными животными 7 класс

    Сравнить или измерить © 2021
    Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению.

  • Исходные данные Операция Результат