C ++ wcsxfrm () - Стандартна библиотека на C ++

Функцията wcsxfrm () в C ++ преобразува даден нулев прекратен широк низ в дефинирана форма на изпълнение.

Функцията wcsxfrm () трансформира широк низ, така че сравняването на два трансформирани широки низа с помощта на функцията wcscmp () води до идентичен резултат като сравняване на оригиналните широки низове с помощта на функцията wcscoll () в текущия локал C.

Например, x и y са две широки низове. a и b са две широки низове, образувани чрез трансформиране на x и y съответно с помощта на функцията wcsxfrm.

Тогава,

 wcscmp (a, b) = wcscoll (x, y)

Той се определя в заглавния файл.

прототип на wcsxfrm ()

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, count_t count);

Функцията wcsxfrm () преобразува първите броени широки символи от широкия низ, посочен от src, в дефинирана форма на изпълнение и резултатът се съхранява в мястото на паметта, посочено от dest.

Поведението на тази функция е неопределено, ако:

  • размер на дес е по-малък от необходимия размер.
  • dest и src се припокриват.

wcsxfrm () Параметри

  • dest: указател към масива, където се съхранява преобразуваният широк низ.
  • src: указател към нулевия прекратен широк низ, който трябва да се трансформира.
  • брой: максимален брой широки символи за конвертиране.

wcsxfrm () Върната стойност

Функцията wcsxfrm () връща броя трансформирани широки символи, с изключение на завършващия нулев широк символ L ' 0'.

Пример: Как работи функцията wcsxfrm ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const wchar_t* s1 = L"u0068u0072u006eu0065u0063"; const wchar_t* s2 = L"u0063u0068u0072u0074"; wchar_t t1(20), t2(20); cout << "wcscoll returned " << wcscoll(s1,s2) << endl; cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl; wcsxfrm(t1,s1,10); wcsxfrm(t2,s2,10); cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl; return 0; )

Когато стартирате програмата, изходът ще бъде:

 wcscoll върна -1 Преди трансформация, wcscmp върна 1 След трансформация, wcscmp върна -1

Интересни статии...