Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Pomógł: GoldWolf
Język C++

strxfrm

[funkcja] Przekształca łańcuch znaków w oparciu o ustawienia lokalne.

Składnia

C/C++
#include <cstring>
size_t strxfrm( char * dest, const char * src, size_t count );

Opis szczegółowy

Funkcja przekształca źródłowy łańcuch znaków (src) do postaci zgodnej z ustawieniami lokalnymi. Wynik jest umieszczany w argumencie dest. Argument count określa maksymalną liczbę znaków, jaka może zostać umieszczona w dest włącznie ze znakiem terminalnym.

Argumenty

Nazwa argumentuOpis
destMiejsce w którym ma zostać umieszczony przekonwertowany łańcuch znaków
srcŁańcuch znaków, który ma zostać przekonwertowany
countMaksymalna liczba znaków jaka może być umieszczona w dest

Zwracana wartość

Zwraca długość przekonwertowanego łańcucha znaków, nie licząc znaku terminalnego. Jeżeli zwracana wartość jest większa lub równa argumentowi count - zawartość dest jest nieprzewidywalna.

W przypadku wystąpienia błędu funkcja ustawia errno i zwraca INT_MAX.

Dodatkowe informacje

Po dokonaniu transformacji łańcucha znaków, porównanie tekstu za pomocą funkcji » standard Cstrcmp zwraca identyczny wynik jak funkcja » standard Cstrcoll wywołana z oryginalnymi łańcuchami znaków.

Przykład

C/C++
#include <cstdio>
#include <cstring>
#include <clocale>

int main()
{
    char str1[] = "x a x";
    char str2[] = "x ą x";
    char str3[] = "x b x";
   
    setlocale( LC_ALL, "Polish" );
    printf( "setlocale = Polish\n" );
    printf( "strcmp: %d, %d\n", strcmp( str1, str2 ), strcmp( str2, str3 ) );
    printf( "strcoll: %d, %d\n", strcoll( str1, str2 ), strcoll( str2, str3 ) );
   
    printf( "\nUzycie funkcji strxfrm:\n" );
    char str1x[ 20 ];
    char str2x[ 20 ];
    char str3x[ 20 ];
    strxfrm( str1x, str1, sizeof( str1x ) );
    strxfrm( str2x, str2, sizeof( str2x ) );
    strxfrm( str3x, str3, sizeof( str3x ) );
    printf( "strcmp: %d, %d\n", strcmp( str1x, str2x ), strcmp( str2x, str3x ) );
    return 0;
}
Standardowe wyjście programu:
setlocale = Polish
strcmp: -1, 1
strcoll: -1, -1

Uzycie funkcji strxfrm:
strcmp: -1, -1

Zagadnienia powiązane

strcollPorównuje dwa łańcuchy znaków leksykograficznie. (funkcja)
strcmpPorównuje dwa łańcuchy znaków. (funkcja)
strncpyKopiuje określoną liczbę znaków łańcucha. (funkcja)

Linki zewnętrzne