Składnia
#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
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
strcmp zwraca identyczny wynik jak funkcja
strcoll wywołana z oryginalnymi łańcuchami znaków.
Przykład
#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
strcoll | Porównuje dwa łańcuchy znaków leksykograficznie. (funkcja) |
---|
strcmp | Porównuje dwa łańcuchy znaków. (funkcja) |
---|
strncpy | Kopiuje określoną liczbę znaków łańcucha. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.