Noté que la diferencia entre Linux y Windows. strcmpi está en la implementación de la biblioteca estándar de Windows C, pero no está en la implementación de la biblioteca estándar de C de GNU. ¿La función strcmpi en la biblioteca estándar de C está definida por ISO? ¿Cómo puedo obtener el archivo estándar? Gracias.
¿Está la función strcmpi en la biblioteca estándar C de ISO?
JACK M.
Frank H.
El estándar POSIX (también conocido como UNIX) tiene strcasecmp()
pero no es parte de C99 / ISO-C.
Nota: Si compara la referencia anterior con, por ejemplo, la de strcmp()
notará que el último hace referencia explícita a ISO-C, mientras que el primero no. Una característica útil de las referencias de OpenGroup.
Editar: Dado que la dependencia de la configuración regional se mencionó como una complicación, consulte la referencia anterior para strcasecmp_l()
Que permite especificando explícitamente la configuración regional que se utilizará para la conversión. Windows tiene _strcmpi_l()
para el propósito, nuevamente manteniendo sus propias convenciones de nomenclatura.
-
¿Estás seguro de que es parte de POSIX? Pensé que Microsoft intentó ser compatible con POSIX.
– Mark Ransom
8 de marzo de 2012 a las 14:05
-
El cumplimiento de POSIX para Microsoft es un interruptor opcional/algo que debe solicitar al compilar (para obtener encabezados adicionales/prototipos modificados en algunas situaciones). Además, POSIX ha estado (y aún está) evolucionando; MS en un momento certificado con un estándar POSIX (realmente antiguo), lo que no significa que se haya mantenido actualizado.
– Frank H.
8 de marzo de 2012 a las 14:08
-
Además, re, “POSIX”: he estado usando el término para describir IEEE1003 (El estándar UNIX según lo especificado / certificado por OpenGroup como “Especificación única de UNIX”).
– Frank H.
8 de marzo de 2012 a las 14:11
-
NB Tampoco forma parte de C 2011.
– PJ Trail
4 sep 2015 a las 10:27
No, es una extensión no estándar. Los sistemas similares a Unix comúnmente tienen un strcasecmp
que realiza la misma tarea que MS strcmpi
.
No, un rápido CTRL+F en el estándar no devuelve nada para strcmpi
. Esto quiere decir que es una extensión no estándar (de la que tanto Windows como GNU tienen muchas).
-
¿Cómo puedo obtener el archivo estándar? Gracias.
– JACK M.
8 de marzo de 2012 a las 14:03
-
JACK M: En realidad cuesta dinero, pero normalmente busco rápidamente en Google “PDF estándar ISO C 11”.
– orlp
8 de marzo de 2012 a las 14:04
Tenga en cuenta que la “comparación que no distingue entre mayúsculas y minúsculas” no es un asunto simple. ¿Quiere uno que se comporte de la misma manera en todas las configuraciones regionales, que es lo que necesitaría para analizar HTML o algo así? ¿O desea uno que funcione para la configuración regional actual (posiblemente no coincida con el idioma del texto de entrada real) o que intente funcionar para todos los idiomas naturales a la vez? ¿Quiere que entre en vigor las reglas de clasificación? Etc..
– R.. GitHub DEJA DE AYUDAR A ICE
8 de marzo de 2012 a las 14:07