Składnia
#include <cstring>
int strcoll( const char * str1, const char * str2 );
Opis szczegółowy
Funkcja porównuje dwa łańcuchy znaków str1 i str2, oraz zwraca liczbę będącą opisem zależności między nimi. Działa podobnie jak
strcmp, jednak do porównania używa zasad określonych przez LC_COLLATE, która określona jest przez funkcję
setlocale.
Argumenty
Zwracana wartość
Dodatkowe informacje
W związku z tym, że funkcja
strcoll porównuje łańcuchy znaków leksykograficznie to jest ona dużo wolniejsza niż
strcmp. Niniejsza funkcja powinna być używana tylko wtedy, gdy porządek loksograficzny jest inny dla używanej strony kodowej niż dla standardowego kodowania.
Przykład
#include <cstdio>
#include <cstring>
#include <clocale>
int main()
{
char str1[] = "x a x";
char str2[] = "x ą x";
char str3[] = "x b x";
printf( "Wyniki porownan:\n" );
setlocale( LC_ALL, "English" );
printf( "\nsetlocale = English\n" );
printf( "strcmp: %d, %d\n", strcmp( str1, str2 ), strcmp( str2, str3 ) );
printf( "strcoll: %d, %d\n", strcoll( str1, str2 ), strcoll( str2, str3 ) );
setlocale( LC_ALL, "Polish" );
printf( "\nsetlocale = Polish\n" );
printf( "strcmp: %d, %d\n", strcmp( str1, str2 ), strcmp( str2, str3 ) );
printf( "strcoll: %d, %d\n", strcoll( str1, str2 ), strcoll( str2, str3 ) );
return 0;
}
Standardowe wyjście programu:
Wyniki porownan:
setlocale = English
strcmp: -1, 1
strcoll: 1, -1
setlocale = Polish
strcmp: -1, 1
strcoll: -1, -1
Zagadnienia powiązane
stricoll | Porównuje dwa łańcuchy znaków leksykograficznie (ignoruje wielkość liter). (funkcja) |
---|
strcmp | Porównuje dwa łańcuchy znaków. (funkcja) |
---|
strncmp | Porównuje określoną liczbę znaków dwóch łańcuchów znaków. (funkcja) |
---|
strxfrm | Przekształca łańcuch znaków w oparciu o ustawienia lokalne. (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.