#define STRBUFSIZE ...char s1[STRBUFSIZE], s2[STRBUFSIZE]; /* ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ */char s1x[STRBUFSIZE], s2x[STRBUFSIZE]; /* ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ */size_t len1, len2;int cmp;/* ... Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ s1 ΠΈ s2 ... */len1 = strlen(s1);len2 = strlen(s2);if (strxfrm(s1x, s1, len1) >= STRBUFSIZE ||Β strxfrm(s2x, s2, len2) >= STRBUFSIZE)Β /* ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ */cmp = strcmp(s1x, s2x);if (cmp == 0)Β /* ΡΠ°Π²Π½Ρ */else if (cmp < 0)Β /* s1 < s2 */elseΒ /* s1 > s2 */ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡΡΡΡΠ΅Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
strcoll()strxfrm()strcmp()strncmp()strcasecmp()13.2.4. Π§ΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ ΠΈ Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
localeconv()ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΈ Π΄Π΅Π½Π΅ΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²
struct lconvlocaleconv()#include <locale.h> /* ISO Π‘ */struct lconv *localeconv(void);ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ
ctime()struct lconv<locale.h>struct lconv {Β /* Π§ΠΈΡΠ»ΠΎΠ²Π°Ρ (Π½Π΅ Π΄Π΅Π½Π΅ΠΆΠ½Π°Ρ) ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. */Β char *decimal_point; /* Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ Π΄ΡΠΎΠ±ΠΈ. */Β char *thousands_sep; /* Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΡΡ. */Β /* ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ ΡΠΈΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅;Β Β Β ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π΄Π°Π»ΡΡΠ΅. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎΒ Β Β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ CHAR_MAX ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅Β Β Β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉΒ Β Β ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π²ΡΠΈΡ
ΡΡ Π³ΡΡΠΏΠΏ. */Β char *grouping;Β /* ΠΠ΅Π½Π΅ΠΆΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. */Β /* ΠΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π²Π°Π»ΡΡ ΠΈΠ· ISO 4217.Β Β Β Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΡΡΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» '\0'. */Β char *int_curr_symbol;Β char *currency_symbol; /* Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΌΠ΅ΡΡΠ½ΠΎΠΉ Π²Π°Π»ΡΡΡ. */Β char *mon_decimal_point; /* Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. */Β char *mon_thousands_sep; /* Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΡΡ. */Β char *mon_grouping; /* ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ 'Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ' (Π²ΡΡΠ΅). */Β char *positive_sign; /* ΠΠ½Π°ΠΊ Π΄Π»Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. */Β char *negative_sign; /* ΠΠ½Π°ΠΊ Π΄Π»Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. */Β char int_frac_digits; /* ΠΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠ΅ ΡΠΈΡΡΡ Π΄ΡΠΎΠ±Π΅ΠΉ. */Β char frac_digits; /* ΠΠ΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π΄ΡΠΎΠ±Π΅ΠΉ. */Β /* 1, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, 0, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅. */Β char p_cs_precedes;Β /* 1, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ. */Β char p_sep_by_space;Β /* 1, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΡΠΈΡ. Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, 0, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅. */Β char n_cs_precedes;Β /* 1, Π΅ΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ ΠΎΡΡΠΈΡ. Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ. */Β char n_sep_by_space;Β /* Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ°:Β Β Β 0 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π²Π°Π»ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½Ρ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ.Β Β Β 1 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π²Π°Π»ΡΡΡ.Β Β Β 2 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π²Π°Π»ΡΡΡ.Β Β Β 3 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π²Π°Π»ΡΡΡ.Β Β Β 4 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π²Π°Π»ΡΡΡ. */Β char p_sign_posn;Β char n_sign_posn;Β /* 1, Π΅ΡΠ»ΠΈ int_curr_symbol Π΄ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ. Π·Π½Π°ΡΠ΅Π½ΠΈΡ, 0, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅. */Β char int_p_cs_precedes;Β /* 1, Π΅ΡΠ»ΠΈ int_curr_symbol ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ, Π·Π½Π°Ρ. ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ. */Β char int_p_sep_by_space;Β /* 1, Π΅ΡΠ»ΠΈ int_curr_symbol ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΡΠΈΡ. Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, 0, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅. */Β char int_n_cs_precedes;Β /* 1, Π΅ΡΠ»ΠΈ int_curr_symbol ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ ΠΎΡΡΠΈΡ. Π·Π½Π°Ρ. ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ. */Β char int_n_sep_by_space;Β /* Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ°:Β Β Β 0 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ int_curr_symbol ΠΎΠΊΡΡΠΆΠ΅Π½Ρ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ.Β Β Β 1 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π΄ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ int_curr_symbol.Β Β Β 2 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ int_curr_symbol.Β Β Β 3 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΠΎ int_curr_symbol.Β Β Β 4 Π‘ΡΡΠΎΠΊΠ° Π·Π½Π°ΠΊΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ int_curr_symbol. */