Сопоставление со строковыми функциями  исполняющей среды языка С


Многие строковые функции дублируют или улучшают привычные строковые функции из библиотеки  стандартных функций C периода исполнения программы (CRT). Многие из расширений дают возможность строковым функциям работать с Unicode или расширенными наборами символов. Нижеследующая таблица показывает функции CRT, функции, которые расширяют функции CRT для Unicode и функции StrSafe (из заголовочного файла StrSafe.h).

Предупреждение защиты Неправильное использование строковых функций может послужить причиной проблем с защитой Вашего приложения. Обычно эта ошибка вызывает переполнение буфера, которое может дать возможность атаке типа "отказ в обслуживании" Вашего приложения или введение в программу исполняемого кода от взломщика защиты. Функции заголовочного файла Strsafe.h обеспечивают более безопасную обработку строк и рекомендуются для лучшего обеспечения безопасности Вашего приложения. Чтобы получить дополнительную информацию по этим функциям, см. статью Использование функций заголовочного файла Strsafe.h.

 

Стандартные функции CRT

Строковые функции

Функции StrSafe

strcat lstrcat StringCchCat, StringCchCatEx, StringCbCat, StringCbCatEx
strcmp lstrcmp (эквивалента функции нет)
strcmpi lstrcmpi (эквивалента функции нет)
strcpy lstrcpy StringCchCopy, StringCchCopyEx, StringCbCopy, StringCbCopyEx
strlen lstrlen StringCchLength, StringCbLength

Функция strlen, например, всегда возвращает число байтов в строке, а функция lstrlen возвращает число TCHARs, которое ссылается на байты для функции версии ANSI или WCHARs для версий Unicode.

Нижеследующие строковые функции отличаются от стандартных функций C, таких как tolower и toupper тем, что, они оперируют любым символом в наборе символов. При помощи использования функции CharLower, например, приложение может преобразовать верхний регистр U с умлаутом (Ü) на нижний регистр этого символа (ü). Для получения дополнительной информации о наборах символов, см. статью Однобайтовые наборы символов.

Функция

Описание

CharLower Преобразует символ или строку в нижний регистр.
CharLowerBuff Преобразует строку символов в нижний регистр.
CharNext Перемещает следующий символ в строке.
CharPrev Перемещает предыдующий символ в строке.
CharUpper Преобразует символ или строку в верхний регистр.
CharUpperBuff Преобразует строку в верхний регистр.

Нижеследующие строковые функции делают распознавание символа основываясь на семантике языка выбранного пользователем. Эти функции - включают Unicode.

Функция

Описание

IsCharAlpha Определяет, является ли символ буквой алфавита.
IsCharAlphaNumeric Определяет, является ли символ буквенно-цифровым.
IsCharLower Определяет, является ли символ в нижнем регистре.
IsCharUpper Определяет, является ли символ в верхнем регистре.

Нижеследующая таблица показывает расширения Unicode стандартных функции sprintf и vsprintf языка Cи периода выполнения программы (CRT).

Предупреждение защиты Как упомянуто раньше, функции из StrSafe.h обеспечивают более безопасную обработку строк и рекомендуются для лучшего обеспечения безопасности для Вашего приложения.

 

Стандартные функции CRT

Строковые функции

Функции StrSafe

sprintf wsprintf StringCchPrintf, StringCchPrintfEx, StringCbPrintf, StringCbPrintfEx
vsprintf wvsprintf StringCchVPrintf, StringCchVPrintfEx, StringCbVPrintf, StringCbVPrintfEx

 

Назад в оглавление
На главную страницу

Hosted by uCoz