/* * strupr — строку в верхний регистр, латиница + кириллица CP866. * * CP866: а-п = 0xA0..0xAF (−0x20 даёт А-П 0x80..0x8F) и * р-я = 0xE0..0xEF (−0x50 даёт Р-Я 0x90..0x9F); ё 0xF1 → Ё 0xF0. * Solid-C совместимость (). */ #include #include char *strupr(char *s) { char *p = s; while (*p) { if ((*p >= 'a' && *p <= 'z') || (*p >= 0xA0 && *p <= 0xAF)) *p -= 'a' - 'A'; else if ((*p >= 0xE0 && *p <= 0xEF)) *p -= 0x50; else if ((*p == 0xF1)) *p = 0xF0; p++; } return s; }