Функция
StringCopyIfNotEx не копирует элементы строки, завершающейся (\0) или 0, в подготовленный буфер на основании условия, заданного функцией, переданной через указатель. Функция
StringCopyIfNotEx автоматически выравнивает стек на 6 байт.
Параметры:- Указатель на строку, завершающуюся (\0) или 0.
- Указатель на буфер, завершающийся (\0) или 0.
- Указатель на функцию, которая определяет, должен ли символ быть скопирован. Допустимые функции:
IsDigit: Проверяет, является ли символ цифрой.
IsLower: Проверяет, является ли символ строчной буквой.
IsUpper: Проверяет, является ли символ заглавной буквой.
IsAlpha: Проверяет, является ли символ буквой.
IsAlnum: Проверяет, является ли символ буквой или цифрой.
IsSpace: Проверяет, является ли символ пробельным символом.
IsPrint: Проверяет, является ли символ печатаемым.
IsGraph: Проверяет, является ли символ графическим символом.
IsPunct: Проверяет, является ли символ знаком пунктуации.
Возвращаемое значение:- Функция не возвращает значение.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Функция не изменяет значения регистров и флагов.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- data segment public
- ____string db "При1ве3т Ми5р!\0"
- ____buffer db 20 dup(0)
- ____fmtout db "Скопированные элементы: "
- ___________db "[%s].\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________pushs___IsDigit
- ________pushs___es:[buffer]
- ________pushs___ds:[string]
- ________call____StringCopyIfNotEx
- ________pushs___ds:[buffer]
- ________leaax___ds:[fmtout]
- ________call____PrintFormatString
- ________add_____sp, 2
- ________push____0
- ________call____ExitProcessEx
- ____main endp
- code ends
- end main