[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Алфавитное сравнение и трансформация строк

В наборе символов ASCII численные значения символов a-z и A-Z
соответствуют их алфавитному порядку. Например, численное значение 'a'
меньше численного значения 'b', а значение 'b' меньше значения 'c'.
Однако в других наборах символов численные значения символов могут не
соответствовать алфавитному порядку.
strcoll(3C) возвращает число большее, равное или меньшее нуля,
соответственно, в зависимости от того, больше s1, равно или меньше
чем s2. При сравнении строки интерпретируются в соответствии с
категорией локали LC_COLLATE.
strxfrm(3C) преобразует строку, заданную параметром s2, и помещает
результат в массив, заданный параметром s1. Преобразование основано на
категории локали LC_COLLATE. Строка преобразуется так, чтобы
strcmp(3C) для двух преобразованных строк давал тот же результат, что
и strcoll(3C) для исходных строк.
strcoll(3C) предназначена для программ, в которых количество сравнений
невелико. strcoll(3C) делает преобразование каждой из строк, а затем
сравнение. strxfrm(3C) более эффективна, когда строки сравниваются
много раз. Например, вам может потребоваться сортировка длинного
файла. Лучше преобразовать все строки файла с использованием
strxfrm(3C), а затем использовать strcmp(3C). В этом случае
преобразование для каждой строки происходит только один раз, а
strcoll(3C) делала бы преобразования строк при каждом вызове.
              АЛФАВИТНОЕ СРАВНЕНИЕ И ТРАНСФОРМАЦИЯ СТРОК
strcoll(3C)

ИМЯ

      strcoll - алфавитное сравнение строк

ИСПОЛЬЗОВАНИЕ

      #include <string.h>

      int strcoll(const char *s1,
                        const char *s2);


strxfrm(3C)

ИМЯ

      strxfrm - преобразование строки

ИСПОЛЬЗОВАНИЕ

      #include <string.h>

      int strxfrm(char *s1,
                        const char *s2, size_t n);