Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
strings.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
654.13 Кб
Скачать

Операции над строками string

В Turbo Pascal над строками типа String определены операция сравнения и операция склеивания. Операция склеивания обозначается знаком +. Кроме этого, для строк можно использовать оператор присваивания :=.

Продемонстрируем использование операций на примере:

var

a, b, c: string; {Три строки}

name: string; {Имя – тоже строка}

begin

a := 'Ваня'; {В A занесли строку ‘Ваня’}

b := 'Ира'; {В B занесли строку ‘Ира’}

c := a + b; {В C занесена строка ‘ВаняИра’}

c := a + ' + ' + b; {В C занесена строка ‘Ваня + Ира’}

readln(name); {Требуется ввести имя}

if name = 'пароль' {Если имя ‘пароль’}

then writeln('Свой!!!') {Выводится сообщение}

else

begin {Иначе}

writeln('Чужак!!!!!'); {Сообщение выводится }

Halt; {И на этом программа завершает свою работу}

end;

readln(name); {Снова вводится имя}

if name<>'вася' {Если ввели строку, не совпадающую

со строкой ‘вася’}

then writeln('Нет, ты не Вася...') {Сообщается об этом}

else writeln('Здравствуй, Вася!!!'); {Иначе –

приветствуется Вася}

if a<b {Сравниваются строки ‘Ваня’ и ‘Ира’}

{Поскольку строки сравниваются не по длине, а по содержимому,

то оказывается, что строка ‘Ваня’ меньше чем строка ‘Ира’}

then writeln('''',a,'''<''',b,'''') {Будет выведено:

'Ваня'<'Ира'}

else writeln('Неправда, что ''',a,'''<''',b,'''');

a := 'кремний'; {В A и B заносятся новые строки}

b := 'крем';

if a > b {Сравниваются A и B – здесь A больше B}

then writeln('''',a,'''>''',b,'''') {Поэтому будет

выведено ‘кремний’>’крем’}

else writeln('Неправда, что ''',a,'''>''',b,'''');

if a <= b {‘Кремний’ явно не меньше и не равен ’крем’}

then writeln('''',a,'''<=''',b,'''')

else writeln('Неправда, что ''', a, '''<=''', b, '''');

{Следовательно, будет выведено

'Неправда, что 'кремний'<='крем'}

if a >= b {Поскольку ‘кремний’ больше, чем ’крем’}

then writeln('''',a,'''>=''',b,'''') {Будет выведено

‘кремний’>=’крем’}

else writeln('Неправда, что ''', a, '''>=''', b, '''');

end.

Отдельного пояснения требуют операции сравнения строк.

Правила сравнения двух строк

При сравнении двух строк (назовем их A и B) последовательно сравниваются соответствующие символы двух строк – первый с первым (A[1] с B[1]), второй со вторым (A[2] с B[2]) и так далее (A[i] с B[iI]). Сравнение производится по значению ASCII кодов соответствующих символов, то есть условие равенства двух символов выглядит примерно таким образом: ord(A[I])=ord(B[I]). Если первые символы равны, то сравниваются вторые. Если равны и вторые, тогда сравниваются третьи. И так далее до тех пор, пока либо не попадется пара неодинаковых символов, либо обе строки не закончатся одновременно. Если встретилась пара неодинаковых символов, тогда большей считается та строка, символ которой в несовпадающей паре имеет больший ASCII код. Если строки закончились одновременно, то они считаются равными.

Пример:

‘Ложка’=’Ложка’ (все символы совпадают)

‘Китай’<’китай’ (ord(‘К’)<ord(‘к’))

‘к рошка’<’крошка’ (ord(‘ ’)<ord(‘р’))

‘тол’<’толстый’ (все три символа ‘тол’ совпали с ‘толстый’,

но ‘тол’ короче, чем ‘толстый’)

‘ангел’>’angel’ (код русской ‘а’ больше, чем код латинской ‘a’)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]