strcmp
Section: C Library Functions (3)
Updated: 202-0-10
Index
Return to Main Contents
NAME
strcmp - strings compare
LIBRARY
Standard C library
(
libc,~
-lc)
SYNOPSIS
#include <string.h>
int strcmp(const char *s1, const char *s2);
DESCRIPTION
The
strcmp()
function compares the two strings
s1
and
s2,
as if by calling
memcmp(3).
It is equivalent to
memcmp(s1, s2, MIN(strlen(s1),strlen(s2))+1)
RETURN VALUE
See
memcmp(3).
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
| Interface | Attribute | Value
|
|
strcmp()
| Thread safety | M-Safe
|
STANDARDS
C11, POSIX.-2008.
HISTORY
POSIX.-2001, C89, SVr4, 4.3BSD.
CAVEATS
The locale is not taken into account (for a local-aware comparison, see
strcoll(3)).
EXAMPLES
The program below can be used to demonstrate the operation of
strcmp().
$
./strcmp ABC ABC;
<str1> and <str2> are equal
$
./strcmp ABC AB; # [aq]C[aq] is ASCII 67; [aq]C[aq] - [aq][rs]0[aq] = 67
<str1> is greater than <str2> (67)
$
./strcmp ABA ABZ; # [aq]A[aq] is ASCII 65; [aq]Z[aq] is ASCII 90
<str1> is less than <str2> (-25)
$
./strcmp ABJ ABC;
<str1> is greater than <str2> (7)
$
./strcmp $[aq][rs]201[aq] A; # 0201 - 0101 = 0100 (or 64 decimal)
<str1> is greater than <str2> (64)
The last example uses
bash(1-specific
syntax to produce a string containing an -bit ASCII code;
the result demonstrates that the string comparison uses unsigned
characters.
Program source
// strcmp.c
// Licensed under GNU General Public License v2 or later.
#include <
stdio.h>
#include <
stdlib.h>
#include <
string.h>
int
main(int argc, char *argv[])
{
int res;
if (argc != 3) {
fprintf(stderr, "Usage: %s <str1> <str2>[rs]n", argv[0]);
exit(EXIT_FAILURE);
}
res = strcmp(argv[1], argv[2]);
if (res == 0) {
printf("<str1> and <str2> are equal");
printf("[rs]n");
} else if (res < 0) {
printf("<str1> is less than <str2> (%d)[rs]n", res);
} else {
printf("<str1> is greater than <str2> (%d)[rs]n", res);
}
exit(EXIT_SUCCESS);
}
SEE ALSO
memcmp(3),
strcasecmp(3),
strcoll(3),
streq(3),
string(3),
strverscmp(3),
wcscmp(3)
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ATTRIBUTES
-
- STANDARDS
-
- HISTORY
-
- CAVEATS
-
- EXAMPLES
-
- Program source
-
- SEE ALSO
-