C ++ wcsxfrm () - Biblioteca C ++ Padrão

A função wcsxfrm () em C ++ transforma uma dada string larga terminada em nulo em uma forma definida pela implementação.

A função wcsxfrm () transforma uma string larga de forma que comparar duas strings amplas transformadas usando a função wcscmp () produz um resultado idêntico ao comparar as strings largas originais usando a função wcscoll () no local C atual.

Por exemplo, x e y são duas strings largas. a e b são duas cadeias largas formadas pela transformação de xey, respectivamente, usando a função wcsxfrm.

Então,

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

É definido no arquivo de cabeçalho.

protótipo wcsxfrm ()

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, tamanho_t contagem);

A função wcsxfrm () converte a primeira contagem de caracteres largos da string larga apontada por src em uma forma definida pela implementação e o resultado é armazenado no local da memória apontado por dest.

O comportamento desta função é indefinido se:

  • o tamanho do dest é menor que o tamanho necessário.
  • dest e src se sobrepõem.

Parâmetros wcsxfrm ()

  • dest: ponteiro para a matriz onde a string larga transformada é armazenada.
  • src: ponteiro para a string larga terminada em null a ser transformada.
  • contagem: número máximo de caracteres largos a serem convertidos.

wcsxfrm () Valor de retorno

A função wcsxfrm () retorna o número de caracteres largos transformados, excluindo o caractere largo nulo de terminação L ' 0'.

Exemplo: Como funciona a função 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; )

Quando você executa o programa, a saída será:

 wcscoll retornou -1 Antes da transformação, wcscmp retornou 1 Após a transformação, wcscmp retornou -1

Artigos interessantes...