Многие строковые функции дублируют или улучшают привычные строковые функции из библиотеки стандартных функций 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 |