#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);
[1]В связи с этим может возникнуть вопрос: что это за таинственное преобразование, которому подвергается строка str2, и зачем оно нужно? Действительно, в списке зависимых функций автор не приводит каких-либо функций, задающих такое преобразование, или способных влиять на него. Все дело в том, что это преобразование предназначено для строк, выводимых локализованными программами, в которых учитывается местная специфика, т.е. национальная и культурная среда, в которой функционирует система или программа. Установка местной специфики может выполняться геополитической функцией setlocale(). Ее вызов в случае, например, кодовой страницы 850 для французского языка может выглядеть так:
setlocale( LC_ALL, "French_France.850" );