Libchecker:checker eq str rus ucs4

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Перекодирование текстовых данных/checker_eq_str_rus_ucs4

Функция сравнивает заданную строку в кодировке UCS-4 со строкой в некоторой поддерживаемой однобайтовой кириллической кодировке.

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

Параметр s2 — это строка в кодировке UCS-4. Параметр не может быть NULL. Строка должна завершаться символом с кодом 0. Параметр s1 — это строка в некоторой однобайтовой кириллической кодировке. Параметр не может быть равен NULL, строка должна завершаться нулевым байтом.

Функция последовательно рассматривает входную строку s1 как представленную в кодировках KOI8-R, CP1251, CP866, ISO, MAC, UTF-8. Если после перекодирования из какой-либо из этих кодировок в кодировку UCS-4 получается строка, равная строке s2, сравнение считается удачным, и функция возвращает результат 1.

Функция возвращает 1, если существует такая кодировка, что строки s1 и s2 оказываются равными, и 0 в противном случае.

Функция предназначена для случаев, когда тестируемая программа должна выводить текст, содержащий русские буквы. Поскольку существует несколько распространенных кириллических кодировок, и, вообще говоря, неизвестно, в какой кириллической кодировке была подготовлена тестируемая программа, требуется перебрать все распространенные кириллические кодировки. Параметр s1 — это строка, выведенная тестируемой программой, а параметр s2 — это правильный ответ. Правильный ответ заранее представляется в кодировке UCS-4, поскольку кодировка, в которой записан правильный ответ, известна при подготовке задачи.

См. также: checker_eq_str_rus_ucs4_nocase.