strcmp - compare two strings
strcmp, strncmp - compare two strings
#include <cs50.h>
#include <string.h>
int strcmp(string s1, string s2);
#include <string.h>
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
This function compares two strings case-sensitively.
The strcmp() function compares the two strings s1
and s2
. The locale is not taken into account (for a locale-aware comparison, see strcoll(3)). It returns an integer less than, equal to, or greater than zero if s1
is found, respectively, to be less than, to match, or be greater than s2
.
The strncmp() function is similar, except it compares only the first (at most) n
bytes of s1
and s2
.
This function returns
int
less than 0
if s1
comes before s2
,0
if s1
is the same as s2
,int
greater than 0
if s1
comes after s2
.The strings are compared using “ASCIIbetical” order, based on the ASCII values of their characters. For instance, "AAA"
would come before "BBB"
, and "AAA"
would also come before "aaa"
.
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
string s1 = get_string("s1: ");
string s2 = get_string("s2: ");
if (strcmp(s1, s2) == 0)
{
printf("Those are the same.\n");
}
else
{
printf("Those are different.\n");
}
}
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
strcmp(), strncmp() | Thread safety | MT-Safe |
POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
bcmp(3), memcmp(3), strcasecmp(3), strcoll(3), string(3), strncasecmp(3), strverscmp(3), wcscmp(3), wcsncmp(3)
This page is part of release 5.05 of the Linux man-pages
project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.