ICQ - форум. Всё про ICQ.  

Вернуться   ICQ - форум. Всё про ICQ. > Мастерская > Программирование > Статьи

 
 
Опции темы Оценить тему
Старый 17.02.2006, 21:24   #1
Участник
 
Аватар для gemaglabin
 
Регистрация: 07.02.2005
Сообщений: 632

ICQ: 4888488

Репутация: 55
По умолчанию Работа со строками

Стандартные функции и процедуры языка Паскаль для работы со строками и символами

Символы

Chr(x : byte) : Char - Возвращает символ ASCII кода х
Ord(c : Char) : Byte - Возвращает ASCII-код символа c
UpCase(c : Char) : Char - Переводит символы 'a'..'z' в верхний регистр
Pred(c : Char) : Char - Выдает предшествующий c символ
Succ(c : Char) : Char - Выдает последующий за c символ

Строки

Length(s : String) : Byte - Возвращает длину строки s
ConCat(s1, s2, s3 ... sn : String) : String - Возвращает конкатинацию (слияние) строк s1...sn
Copy(s : String; start, len : Integer) : String - Возвращает подстроку длиной len, начинающуюуся с позиции start строки s
Delete(VAR s : String; start, len : Integer) - Удалает подстроку длиной len начиная с позиции start строки s
Insert(VAR s : String; SubS : String; start : Integer ) - Вставляет в s подстроку SubS, начиная с позиции start
Pos(SubS, s : string) : byte - Ищет вхождение подстроки SubS в s и возвращает номер первого символа SubS в s, или 0, если s не соержит SubS

Процедуры преобразования

Str(X :F :n; s : string) - Преобразует числовое значение X в строковое s, возможно создание формата для х
Val(S : String; var X; errCode : integer) - Преобразует строку цифр S в числовое значение X, при неудачном преобразовании errCode содержит номер позиции символа в строке, который не удалось преобразовать (то есть он не является цифрои или десятичной точкой)


Модуль для работы со строками

Содержит ряд функций для работы со строковыми переменными. Функции разбиты на насколько групп:

Функции проверки:
Функции, начинающиеся с Is... предназначены для проверки принадлежности символов строки к определенным группам. Все они возвращают логическое значение (True/False). Функция Is... проверяет, "является ли символ Ch..."

  • Function IsAlpha(Ch: Char): Boolean;
    ... алфавитным (прописная или строчная буква)
  • Function IsDigit(Ch: Char): Boolean;
    ... цифрой от '0' до '9'
  • Function IsAlnum(Ch: Char): Boolean;
    ... алфавитно-цифровым (цифра или прописная/строчная буква)
  • Function IsAscii(Ch: Char): Boolean;
    ... символом Ascii ($00 .. $7E)
  • Function IsLower(Ch: Char): Boolean;
    ... строчной буквой (русского или латинского алфавита)
  • Function IsUpper(Ch: Char): Boolean;
    ... прописной буквой (русского или латинского алфавита)
  • Function IsXDigit(Ch: Char): Boolean;
    ... шестнадцатеричной цифрой ('0' .. '9' и прописная/строчная 'a' .. 'f')
Функции преобразования:
  • Function StrLower(s: String): String;
    Преобразует в строке S все прописные буквы в строчные (корректно работает с символами кириллицы)
  • Function StrUpper(s: String): String;
    Преобразует в строке S все строчные буквы в прописные (корректно работает с символами кириллицы)
Функции сравнения строк.
Все эти функции возвращают результат типа strResult:
CODE
Type
strResult = (strLess, strEqual, strMore);


При сравнении строк s1 и s2 результат будет таким:
QUOTE
s1 = s2 : вернется strEqual
s1 < s2 : вернется strLess
s1 > s2 : вернется strMore
  • Function StrCompare(s1, s2: String): strResult;
    Посимвольное сравнение двух строк
  • Function StrPartCompare(s1, s2: String; n: Byte): strResult;
    Функция аналогична StrCompare, но сравнивает только максимум N символов двух строк
  • Function StrIgnoreCompare(s1, s2: String): strResult;
    Функция аналогична StrCompare, но при сравнении строк игнорирует различие между строчными и прописными буквами
  • Function StrIgnorePartCompare(s1, s2: String; n: Byte): strResult;
    Функция аналогична StrPartCompare, но при сравнении строк игнорирует различие между строчными и прописными буквами
Функции поиска:
  • Function StrPos(s, subs: String; Var Ch: Char): Byte;
    Функция ищет в строке S первое вхождение любого символа, присутствующего в строке Subs. В случае успеха (хотя бы один символ из Subs присутствует в S), функция вернет позицию в строке S, в которой встретился символ, который вернулся в Ch. В случае, если ни один символ из Subs в строке S не встречается, функция возвращает 0 и Ch = #0.
  • Function RevPos(subs, s: String): Byte;
    Функция производит поиск последнего вхождения подстроки Subs в строку S. Если Subs не содержится в S, функция вернет 0.
  • Function bmSearch(start: Integer; Const s, p: String): Integer;
    Функция поиска подстроки P в строке S по алгоритму Бойера-Мура (поиск будет осуществляться начиная с позиции start строки S)
    Описание простого варианта алгоритма Бойера-Мура
Дополнительные функции:
  • Function StrRevert(s: String): String;
    Функция "переворачивает" строку S (изменяет порядок символов в строке на обратный)
  • Function StrDelLeadSpace(s: String): String;
    Function StrDelEndSpace(s: String): String;

    Эти функции удаляют из строки все начальные (StrDelLeadSpace) и конечные (StrDelEndSpace) пробелы.
  • Function StrOneSpace(s: String): String;
    Функция удаляет из строки все лишние пробелы таким образом, что между остальными символами всегда остается
    только один пробел.
  • Function GetWords(s: String; Var mas: TWords): Byte;
    Функция разбивающая строку S на массив слов Mas и возвращающая количество найденых слов. Реализация функции - см. выше...
  • Function isPalindrom(Const s: String): Boolean;
    Функция проверяет, является ли переданная ей в качестве параметра строка "палиндромом" (т.е. строкой, читающейся одинаково и слева направо и справа налево). Реализация функции:
__________________
cup.[SU]

Последний раз редактировалось gemaglabin; 17.02.2006 в 21:32.
gemaglabin вне форума  
 

Опции темы
Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 10:55.


Перевод: zCarot
Форум Асечников © Asechka.RU

Новости Сочи