OSDN Git Service

r288@cf-ppc-macosx: monabuilder | 2008-12-07 13:17:34 +0900
[pf3gnuchains/pf3gnuchains3x.git] / newlib / libc / string / strcasecmp.c
1 /*
2 FUNCTION
3         <<strcasecmp>>---case-insensitive character string compare
4         
5 INDEX
6         strcasecmp
7
8 ANSI_SYNOPSIS
9         #include <string.h>
10         int strcasecmp(const char *<[a]>, const char *<[b]>);
11
12 TRAD_SYNOPSIS
13         #include <string.h>
14         int strcasecmp(<[a]>, <[b]>)
15         char *<[a]>;
16         char *<[b]>;
17
18 DESCRIPTION
19         <<strcasecmp>> compares the string at <[a]> to
20         the string at <[b]> in a case-insensitive manner.
21
22 RETURNS 
23
24         If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after
25         both are converted to uppercase), <<strcasecmp>> returns a
26         number greater than zero.  If the two strings match,
27         <<strcasecmp>> returns zero.  If <<*<[a]>>> sorts
28         lexicographically before <<*<[b]>>>, <<strcasecmp>> returns a
29         number less than zero.
30
31 PORTABILITY
32 <<strcasecmp>> is in the Berkeley Software Distribution.
33
34 <<strcasecmp>> requires no supporting OS subroutines. It uses
35 tolower() from elsewhere in this library.
36
37 QUICKREF
38         strcasecmp 
39 */
40
41 #include <string.h>
42 #include <ctype.h>
43
44 int
45 _DEFUN (strcasecmp, (s1, s2),
46         _CONST char *s1 _AND
47         _CONST char *s2)
48 {
49   while (*s1 != '\0' && tolower(*s1) == tolower(*s2))
50     {
51       s1++;
52       s2++;
53     }
54
55   return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
56 }