Реферат Курсовая Конспект
Функции и команды обработки строк - раздел Информатика, Алгоритмы обработки символьной информации. 1 Процедуры Delete (Var S:string; Poz, L:integer) Видоизменяет Строку ...
|
Процедуры
Delete (Var S:String; Poz, L:Integer) видоизменяет строку S, стирая L символов, начиная с символа с номером Poz.
Пример: Var S:String[10];
. . .
S:=’строка’;
Delete(S,2,4); {S=’са’}.
После стирания подстроки ее оставшиеся части как бы склеиваются. Если Poz = 0 или превышает длину строки S, то строка не изменится. Также не изменит длину строки значение L=0. При L больше остатка строки, будет удалена подстрока от Poz и до конца. Это используют для “подрезания” строк до заданной величины.
Insert (S1:String; Var S:String; Poz:Integer) вставляет подстроку S1 в строку S, начиная с позиции Poz.
Пример: Var S1,S: String[40];
. . .
S:=’Начало-конец‘;
Insert(‘середина-‘, S, 8); { Имеем S=’Начало-середина-конец‘}.
Str (X [:Width [:dec]]; Var S:String) служит для преобразования числовых значений в строковые. Для целых значений можно задать только Width, для вещественных – либо оба поля (формат с фиксированной точкой), либо одно – Width (экспоненциальная форма). Если число имеет меньше знаков, чем дано в поле, то оно выравнивается по правому краю, пустое место заполняется пробелами. Можно задать Width отрицательным, в этом случае выравнивание происходит по левому краю, а излишек как бы стирается.
Пример: Var S:String;
. . .
Str(4.53:8:2, S); {S=’ 4.53’}
Str(4.53:-8:2, S); {S=’4.53’}
Str(4.53:8:0, S); {S=’ 5’}
Str(1.234567:6:4, S); {S=’1.2346’}.
Val (S:String; Var V; Var ErrCode:Integer) преобразует числовые значения, записанные в строке S, в числовую переменную V. Если преобразование возможно, то переменная ErrCode равна нулю, в противном случае она содержит номер символа в строке S, на котором процедура застопорилась. Тип V должен соответствовать содержимому строки S.
Функции
Length(S:String) : Byte возвращает текущую длину строки S. Результат имеет целочисленный тип.
Пример: Var L:Byte;
. . .
L:=Length(S);
Concat(S1,S2,…,SN:String) : String выполняет слияние строк S1,S2,…,SN в том порядке, в каком они указаны в списке параметров.
Пример: Var Ssum:String[50];
. . .
Ssum:=Concat(S1,S2,S3);
Если сумма длин строк в Concat превысит объявленную длину строки в левой части оператора присваивания, то излишек будет отсечен. Следует помнить, что вместо Concat можно пользоваться операцией сцепления. Например, Ssum:=S1+S2+S3;
Copy(S:String; Poz, L:Length) : String позволяет выделить из строки S последовательность из L символов, начиная с позиции Poz. Если Poz>Length(S), то функция вернет пустую строку, а если L больше, чем число символов от Poz до конца строки S, то вернется остаток строки S от Poz до конца.
Пример: Var Ssum:String;
. . .
Ssum:=Copy(‘ABC***123’, 4, 3); {Ssum=’***’}
Ssum:=Copy(‘ABC’, 4, 3); {Ssum=’ ‘}
Ssum:=Copy(‘ABC***123’, 4, 11); {Ssum=’***123’]
Pos(S1, S:String) : Byte возвращает номер символа в строке S, с которого начинается включение в S подстроки S1. Если S не содержит в себе S1, то функция вернет 0. Недостатком функции Poz является то, что она возвращает ближайшую стартовую позицию S1 в S от начала строки, т.е. вызов
Var P:Byte;
. . .
P:=Poz(‘abc’, ’Nom abcabcabcfcd’);
завершит свою работу, вернув значение 5, хотя есть еще и 8, и 11.
UpCase(C:Ch) : Char преобразует строчную букву латинского алфавита в прописную, возвращая все остальные, в том числе и буквы русского алфавита, в исходном виде.
Pred(C:Char) : Char выдает предшествующий C символ.
Succ(C:Char) : Char выдает следующий за C символ.
Chr(X:Byte) : Char возвращает символ, код которого равен X.
Ord(C:Char) : Byte возвращает число, равное коду символа C. Учитывая, что текущая длина строки S содержится в S[0], она может быть определена следующим образом:
Var S:String;
L:Byte;
. . .
Read(S);
L:=Ord(S[0]);
Пример: Дана последовательность из 45 символов. Подсчитать в этой последовательности количество вопросительных и восклицательных знаков.
Program String 02;
Type St = String[45];
Var A : st;
i,K : Byte;
Begin
Writeln('ВВЕДИТЕ СТРОКУ СИМВОЛОВ:');
Readln(a);
K:=0;
For i:=1 to Length(a) Do
if (a[i]='!') Or (a[i]='?') Then K:=K+1;
Writeln('КОЛИЧЕСТВО СИМВОЛОВ ! и ? В СТРОКЕ= ',k);
End.
– Конец работы –
Эта тема принадлежит разделу:
Алгоритмы обработки символьной информации... Операция присваивания... Операция сцепления...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Функции и команды обработки строк
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов