Содержание | Глава 14

Функция strxfrm

#include <string.h>
size_t strxfrm(char *str1, const char *str2, size_t count);

Функция strxfrm() преобразует строку, адресуемую параметром str2, таким образом, чтобы ее можно было использовать функцией strcmp(), и помешает результат преобразования в строку, адресуемую параметром str1. После преобразования результат вызова функции strcmp(), использующей параметр str1, будет совпадать с результатом вызова функции strcoll(), использующей исходную строку, на которую указывает параметр str2. В массив, адресуемый параметром str1, записывается не более count символов.

В версии С99 к параметрам str1 и str2 применен квалификатор restrict.

Функция strxfrm() возвращает длину преобразованной строки[1].

Пример

strxfrm(s1, s2, 10);

Зависимые функции

strcoll()

----------

[1]В связи с этим может возникнуть вопрос: что это за таинственное преобразование, которому подвергается строка str2, и зачем оно нужно? Действительно, в списке зависимых функций автор не приводит каких-либо функций, задающих такое преобразование, или способных влиять на него. Все дело в том, что это преобразование предназначено для строк, выводимых локализованными программами, в которых учитывается местная специфика, т.е. национальная и культурная среда, в которой функционирует система или программа. Установка местной специфики может выполняться геополитической функцией setlocale(). Ее вызов в случае, например, кодовой страницы 850 для французского языка может выглядеть так:

setlocale( LC_ALL, "French_France.850" );

Содержание | Глава 14