www.LinuxHowtos.org





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).
InterfaceAttributeValue
strcmp() Thread safetyM-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