[<<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);