_StrCmp( ) (Rutina de biblioteca API)

Compara cada uno de los bytes de dos cadenas terminadas en nulo, a partir del byte de la izquierda.

int _StrCmp(char FAR *string1, char FAR *string2)
char FAR *string1;         /* First comparison string. */
char FAR *string2;         /* Second comparison string. */

Observaciones

_StrCmp( ) devuelve 0 si coinciden string1 y string2, un número positivo si el primer byte que no coincide de string1 es mayor que el byte correspondiente de string2, o un número negativo si el primer byte que no coincide de string1 es menor que el byte correspondiente de string2.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El ejemplo siguiente utiliza _StrCmp( ) para comparar dos cadenas pasadas como parámetros.

Código Visual FoxPro

SET LIBRARY TO STRCMP  
? STRCMP("Hello, world.", "Hello, world.")  && matches; returns 0
? STRCMP("Hello, world.", "Hello, wurld.")  && no match; returns non-0

Código C

#include <pro_ext.h>

void NullTerminate(Value FAR *cVal)
{
   if (!_SetHandSize(cVal->ev_handle, cVal->ev_length + 1))
   {
      _Error(182); // "Insufficient memory"
   }
   ((char FAR *) _HandToPtr(cVal->ev_handle))[cVal->ev_length] = '\0';
}

FAR Example(ParamBlk FAR *parm)
{
   int RetValue;

   NullTerminate(&parm->p[0].val);
   NullTerminate(&parm->p[1].val);

   _HLock(parm->p[0].val.ev_handle);
   _HLock(parm->p[1].val.ev_handle);

   RetValue = _StrCmp(_HandToPtr(parm->p[0].val.ev_handle),
      _HandToPtr(parm->p[1].val.ev_handle));

   _RetInt(RetValue, 10); // does return control here

   _HUnLock(parm->p[0].val.ev_handle);
   _HUnLock(parm->p[1].val.ev_handle);
}

FoxInfo myFoxInfo[] = {
   {"STRCMP", (FPFI) Example, 2, "C,C"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_StrCpy( ) (Rutina de biblioteca API) | _StrLen( ) (Rutina de biblioteca API) | _PutStr( ) (Rutina de biblioteca API) | _WPutStr( ) (Rutina de biblioteca API) | _SetHandSize( ) (Rutina de biblioteca API) | Rutinas de manipulación de cadenas