C ++ strxfrm () - Biblioteca padrão C ++

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

A função strxfrm () transforma a string de forma que comparar duas strings transformadas usando a função strcmp () produz um resultado idêntico ao da comparação das strings originais usando a função strcoll () no local C atual.

Por exemplo, x e y são duas strings. aeb são duas cadeias formadas pela transformação de xey, respectivamente, usando a função strxfrm. Então, uma chamada para strcmp (a, b) é o mesmo que chamar strcoll (x, y).

protótipo strxfrm ()

 size_t strxfrm (char * dest, const char * src, size_t count);

A função strxfrm () converte a primeira contagem de caracteres da string apontada por src em uma forma definida pela implementação e o resultado é armazenado na localização da memória apontada 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.

É definido no arquivo de cabeçalho "> arquivo de cabeçalho.

Parâmetros strxfrm ()

  • dest: ponteiro para o array onde a string transformada está armazenada.
  • src: ponteiro para a string terminada em nulo a ser transformada.
  • contagem: número máximo de caracteres a serem convertidos.

strxfrm () Valor de retorno

A função strxfrm () retorna o número de caracteres transformados, excluindo o caractere nulo final ' 0'.

Exemplo: Como funciona a função strxfrm ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )

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

 strcoll retornou -1 Antes da transformação, strcmp retornou 1 Após a transformação, strcmp retornou -1

Artigos interessantes...