Является ли функция strcmpi в стандартной библиотеке C ISO? - PullRequest
3 голосов
/ 08 марта 2012

Я заметил, что разница между Linux и Windows. strcmpi находится в стандартной реализации библиотеки Windows C, но не в стандартной реализации библиотеки GNU C. Определяется ли функция strcmpi в стандартной библиотеке C стандартом ISO? Как я могу получить стандартный файл? Спасибо.

Ответы [ 3 ]

9 голосов
/ 08 марта 2012

Стандарт POSIX (он же UNIX) имеет strcasecmp(), но он не является частью C99 / ISO-C.

Примечание. Если вы сравните приведенную выше ссылку с, например,для strcmp() вы заметите, что последний явно ссылается на ISO-C, а первый - нет.Полезная функция ссылок OpenGroup.

Редактировать: Поскольку зависимость от локали была упомянута как сложность, см. Приведенную выше ссылку для strcasecmp_l(), которая позволяет явно указывать языковой стандарт для конвертации.Для этой цели Windows имеет _strcmpi_l(), что также соответствует ее собственным соглашениям об именах.

0 голосов
/ 08 марта 2012

Нет, быстрое сочетание клавиш CTRL + F в стандарте ничего не возвращает для strcmpi. Это означает, что это нестандартное расширение (которого много и в Windows, и в GNU).

0 голосов
/ 08 марта 2012

Нет, это нестандартное расширение. Unix-подобные системы обычно имеют strcasecmp, который выполняет ту же задачу, что и MS strcmpi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...