sl@0: /* sl@0: * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * FUNCTION sl@0: * <>---character string compare sl@0: * INDEX sl@0: * strcmp sl@0: * ANSI_SYNOPSIS sl@0: * #include sl@0: * int strcmp(const char *<[a]>, const char *<[b]>); sl@0: * TRAD_SYNOPSIS sl@0: * #include sl@0: * int strcmp(<[a]>, <[b]>) sl@0: * char *<[a]>; sl@0: * char *<[b]>; sl@0: * <> compares the string at <[a]> to sl@0: * the string at <[b]>. sl@0: * RETURNS sl@0: * If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, sl@0: * <> returns a number greater than zero. If the two sl@0: * strings match, <> returns zero. If <<*<[a]>>> sl@0: * sorts lexicographically before <<*<[b]>>>, <> returns a sl@0: * number less than zero. sl@0: * PORTABILITY sl@0: * <> is ANSI C. sl@0: * <> requires no supporting OS subroutines. sl@0: * QUICKREF sl@0: * strcmp ansi pure sl@0: * sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: #include sl@0: sl@0: /** sl@0: Compare two strings. sl@0: Compares string1 to s1 character by character. sl@0: This function starts comparing the first character of each string. sl@0: If they are equal to each other continues with the following pair sl@0: until the characters differ or until end of string is reached. sl@0: @return a value indicating the lexicographical relation between the strings sl@0: @param s1 Null-terminated string to compare. sl@0: @param s2 Null-terminated string to compare. sl@0: */ sl@0: EXPORT_C int sl@0: strcmp (const char *s1, const char *s2) sl@0: { sl@0: const unsigned char* p1=(const unsigned char*)s1; sl@0: const unsigned char* p2=(const unsigned char*)s2; sl@0: for (;;) sl@0: { sl@0: int c1=*p1++; sl@0: int d=c1-*p2++; sl@0: if (d!=0) sl@0: return d; sl@0: if (c1==0) sl@0: return d; sl@0: } sl@0: } sl@0: sl@0: /** sl@0: Compare the wide-character string pointed to by s1 to the wide-character sl@0: string pointed to by s2. sl@0: @return an integer greater than, equal to, or less than zero, if the sl@0: wide-character string pointed to by s1 is greater than, equal to, sl@0: or less than the wide-character string pointed to by s2. sl@0: */ sl@0: EXPORT_C int wcscmp (const wchar_t *s1, const wchar_t *s2) sl@0: { sl@0: for (;;) sl@0: { sl@0: int c1=*s1++; sl@0: int d=c1-*s2++; sl@0: if (d!=0) sl@0: return d; sl@0: if (c1==0) sl@0: return d; sl@0: } sl@0: }