winbase.h


lstrcmpi

La función lstrcmpi compara dos cadenas de caracteres. La comparación no distingue mayúsculas de minúsculas.

Sintaxis

int lstrcmpi(
    LPCTSTR lpString1,  // dirección de la primera cadena
    LPCTSTR lpString2   // dirección de la segunda cadena
   );

Parámetros

lpString1: apunta a la primera cadena terminada en nulo a comparar.

lpString2: apunta a la segunda cadena terminada en nulo a comparar.

Valor de retorno

Si la función tiene éxito y la cadena apuntada por lpString1 es menor que la cadena apuntada por lpString2, el valor de retorno es negativo; si la cadena apuntada por lpString1 es mayor que la apuntada por lpString2, es positivo. Si las cadenas son iguales, el valor de retorno es cero.

Observaciones

La función lstrcmpi compara dos cadenas verificando los primeros caracteres entre ellos, los segundos, y sucesivamente hasta encontrar una desigualdad o el final de una de las cadenas.

La función devuelve la diferencia entre los valores de los primeros caracteres no iguales si los encuentra. Por ejemplo, lstrcmp determina que "abcz" es mayor que "abcdefg" y devuelve la diferencia entre z y d.

El lenguaje (localización) seleccionado por el usuario durante la instalación, o mediante el Panel de Control, determina qúe cadena es mayor (o si las cadenas son la misma). Si no se ha seleccionado un lenguaje, Windows realiza la comparación usando los valores por defecto.

Para algunas localizaciones, la función lstrcmpi puede ser insuficiente. Si esto ocurre, suar CompareString para asegurar una comparación correcta. Por ejemplo, en Japón llamar a CompareString con los valores IGNORE_CASE, IGNORE_KANATYPE e IGNORE_WIDTH para conseguir la comparación más apropiada de cadenas no exacta. Los valores IGNORE_KANATYPE e IGNORE_WIDTH se ignoran el localizaciones no asiáticas, de modo que se pueden activar estos valores para todas las localizaciones y garantizar que se tiene una comparación "no sensible" culturalmente correcta independientemente de la localización. Hay que tener en cuenta que especificar estos valores ralentiza el funcionamiento, así que se debe usarlos sólo cuando sea necesario.

Con la versión de Windows de caracteres de doble byte (DBCS), esta función compara dos cadenas DBCS.

La versión Win32 de la función lstrcmp usa un ordenamiento de palabra (word sort), en lugar de un ordenamiento de cadena (string sort). Un ordenamiento de palabra trata los guiones y los apóstrofes de un modo diferente que el resto de los símbolos no alfanuméricos, para asegurar que palabras como "coop" y "co-op" estarán juntas en una lista ordenada. En versiones de 16 bits de Windows, lstrcmp usa ordenamiento de cadena. Para una explicación más detallada sobre ordenamientos de palabra y de cadena, ver la sección de Observaciones de la referencia de la función CompareString.