Пространства имён
Варианты
Действия

std::wcsxfrm

Материал из cppreference.com
< cpp‎ | string‎ | wide

Определено в заголовочном файле <cwchar>
std::size_t strxfrm( const wchar_t* dest, const wchar_t* src, std::size_t count );
Преобразования нулем строку широких указывает src в процессе осуществления определенной форме, что сравнение двух строк преобразуются с std::wcscmp дает тот же результат, сравнивая исходные строки с std::wcscoll, в текущей локали C.
Оригинал:
Transforms the null-terminated wide string pointed to by src into the implementation-defined form such that comparing two transformed strings with std::wcscmp gives the same result as comparing the original strings with std::wcscoll, in the current C locale.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Первые символы count преобразованной строки написаны до места назначения, включая завершающий нулевой символ, а длина полного преобразована строка возвращается, исключая завершающий нулевой символ.
Оригинал:
The first count characters of the transformed string are written to destination, including the terminating null character, and the length of the full transformed string is returned, excluding the terminating null character.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если count является 0, то dest имеет право быть нулевой указатель.
Оригинал:
If count is 0, then dest is allowed to be a null pointer.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Notes

Правильная длина буфера, которое может получить всю преобразована строка 1+std::wcsxfrm(NULL, src, 0)
Оригинал:
The correct length of the buffer that can receive the entire transformed string is 1+std::wcsxfrm(NULL, src, 0)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Параметры

dest -
Указатель на первый элемент широкого нулем строку, чтобы написать превращается строку
Оригинал:
pointer to the first element of a wide null-terminated string to write the transformed string to
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
src -
Указатель нулем строку широких символов для преобразования
Оригинал:
pointer to the null-terminated wide character string to transform
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
count -
Максимальное количество символов на выход
Оригинал:
maximum number of characters to output
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Возвращаемое значение

Длина трансформируется широкие строки, не включая завершающий нулевой символ.
Оригинал:
The length of the transformed wide string, not including the terminating null-character.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Пример

#include <iostream>
#include <cwchar>
 
int main()
{
    std::setlocale(LC_ALL, "sv_SE.utf8");
 
    std::wstring in1 = L"\u00e5r";
    std::wstring out1(1+std::wcsxfrm(nullptr, in1.c_str(), 0), L' ');
    std::wstring in2 = L"\u00e4ngel";
    std::wstring out2(1+std::wcsxfrm(nullptr, in2.c_str(), 0), L' ');
 
    std::wcsxfrm(&out1[0], in1.c_str(), out1.size());
    std::wcsxfrm(&out2[0], in2.c_str(), out2.size());
 
    std::wcout << "In the Swedish locale: ";
    if(out1 < out2)
         std::wcout << in1 << " before " << in2 << '\n';
    else
         std::wcout << in2 << " before " << in1 << '\n';
 
    std::wcout << "In lexicographical comparison: ";
    if(in1 < in2)
         std::wcout << in1 << " before " << in2 << '\n';
    else
         std::wcout << in2 << " before " << in1 << '\n';
 
}

Вывод:

In the Swedish locale: år before ängel
In lexicographical comparison: ängel before år

[править] См. также

преобразование строки, так что STRCMP бы тот же результат, как strcoll
Оригинал:
transform a string so that strcmp would produce the same result as strcoll
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
[virtual]
преобразует строку так, чтобы сортировки можно заменить сравнение
Оригинал:
transforms a string so that collation can be replaced by comparison
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected std::collate функция-член) [edit]
сравнивает две строки широких в соответствии с текущей локали
Оригинал:
compares two wide strings in accordance to the current locale
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
C documentation for wcsxfrm