strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
Преобразование строки на основе данных для конкретного языкового стандарта.
size_t strxfrm(
char *strDest,
const char *strSource,
size_t count
);
size_t wcsxfrm(
wchar_t *strDest,
const wchar_t *strSource,
size_t count
);
size_t _strxfrm_l(
char *strDest,
const char *strSource,
size_t count,
_locale_t locale
);
size_t wcsxfrm_l(
wchar_t *strDest,
const wchar_t *strSource,
size_t count,
_locale_t locale
);
Параметры
strDest
Строка цели.strSource
Строка источника.count
Максимальное число символов, записываемый в strDest*.*locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
Возвращает длину преобразованной строки не учитываются, которая нуль-символ.Если возвращаемое значение больше или равно countсодержимое strDest становятся непредсказуемыми.При ошибке, каждая функция устанавливает errno возвращает INT_MAX.Для недопустимого символа errno равно EILSEQ.
Заметки
strxfrm функция преобразует указанную строку на strSource в новой форме, которая хранится внутри разбирается по копиям strDest.Не больше count знаки, в том числе нуль-символ, преобразование и помещаются в результирующую строку.Преобразование осуществляется с помощью метода locale LC_COLLATE параметр категории.Дополнительные сведения LC_COLLATEсм. setlocale.strxfrm использует текущий языковой стандарт для его расширениях функциональности, зависимых от языковых стандартов. _strxfrm_l идентичны, за исключением того, что он использует языковой стандарт переданный вместо текущего языкового стандарта.Дополнительные сведения см. в разделе Языковой стандарт.
После преобразования вызов strcmp преобразованными с 2 строками формирует результаты идентичные к этому из вызова strcoll применяется к исходному 2 строкам.Как и strcoll и stricoll" strxfrm автоматически обрабатывает характерные черты.
wcsxfrm версия расширенных символов strxfrm; аргументы строки wcsxfrm указатели расширенных символов.Для wcsxfrmпосле преобразования строк, вызов wcscmp преобразованными с 2 строками формирует результаты идентичные к этому из вызова wcscoll применяется к исходному 2 строкам.wcsxfrm и strxfrm поступайте совпадают, в противном случае.wcsxfrm использует текущий языковой стандарт для его расширениях функциональности, зависимых от языковых стандартов. _wcsxfrm_l использует языковой стандарт переданный вместо текущего языкового стандарта.
Эти функции проверяют их параметры.If strSource указатель null или strDest указатель NULL (если количество не будет нуль) или count больше INT_MAXнедопустимый параметр, обработчик вызывается, как описано в разделе Проверка параметров .Если выполнение может быть продолжено, то эти функции установки errno В EINVAL и извлечение INT_MAX.
Сопоставления подпрограммы Родов-Текста
Подпрограмма TCHAR.H |
_MBCS не заданные _UNICODE & |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tcsxfrm |
strxfrm |
strxfrm |
wcsxfrm |
_tcsxfrm_l |
_strxfrm_l |
_strxfrm_l |
_wcsxfrm_l |
В языковом стандарте "c", порядок знаков в символе - набор (кодировка ASCII) такой же, как и лексикографический порядок символов.Однако в других языковых стандартах, порядок символов в символе - набор может отличаться от порядка лексикографического знака.Например, в некоторых европейских языковых стандартах, символ "a" (значение 0x61) предшествует знак "ä" (значение 0xE4) в символе - укажите, но знак "ä" предшествует символ "a" лексикографически.
В языковых стандартах, для которых кодировку и порядок лексикографический символа отличается, использующий strxfrm на исходные строки, а затем strcmp в итоговом строках, чтобы сформировать лексикографическое сравнение строк согласно текущему языковому стандарту LC_COLLATE параметр категории.Таким образом, сравнение 2 строк лексикографически в языковом стандарте, представленном выше strxfrm в исходной строке, после чего strcmp в результирующей строке.Кроме того, можно использовать strcoll вместо strcmp на исходные строки.
strxfrm по сути, программа-оболочка вокруг LCMapString с LCMAP_SORTKEY.
Значение следующего выражения размер массива необходимо для хранения strxfrm преобразование строки источника:
1 + strxfrm( NULL, string, 0 )
В языковом стандарте "c", strxfrm эквивалентны:
strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );
Требования
Процедура |
Обязательный заголовок |
---|---|
strxfrm |
<string.h> |
wcsxfrm |
<string.h> OR <wchar.h> |
_strxfrm_l |
<string.h> |
_wcsxfrm_l |
<string.h> OR <wchar.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.