Name | Description | Notes | Source | Availability | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
strcmp() |
Compare string | (·) | <string.h> |
C89 | C90 | C95 | C99 | C11 | |||
strncmp() |
Compare string | (·) | <string.h> |
C89 | C90 | C95 | C99 | C11 | |||
wcscmp() |
Compare wide-character string | (·) | <wchar.h> |
C95 | C99 | C11 | |||||
wcsncmp() |
Compare wide-character string | (·) | <wchar.h> |
C95 | C99 | C11 |
#include <string.h>
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
#include <wchar.h>
int wcscmp(const wchar_t *s1, const wchar_t *s2);
int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t n);
strcmp
and
wcscmp
compare two null-terminated strings s1
and s2
of bytes or wide
characters respectively. Starting from index 0, each pair
of elements at index i
is compared.
The functions stop when the elements differ, or are both
null. The functions return an integer with the same sign as
s1[i] - s2[i]
. Zero therefore
indicates that the strings are identical at least to the
point where the comparison reached. Positive and negative
values then indicate a relative ordering of the two strings.
Such return values are compatible with the comparison
functions required by qsort
and bsearch
.
strncmp
and wcsncmp
do the same as strcmp
and
wcscmp
,
but also stop when n
pairs of elements
have been compared, returning zero.
See also strcoll
and wcscoll
for a more sophisticated form of
string comparison.