Chapter Contents | Previous | Next |
strcmp
Compare Two Null-Terminated Strings
Portability: | ISO/ANSI C conforming, UNIX compatible |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
CAUTION | |
IMPLEMENTATION | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <string.h>int strcmp(const char *str1, const char *str2);
DESCRIPTION |
strcmp
compares two character strings (str1
and str2
) using the standard EBCDIC collating sequence. The return value has the same relationship to 0 as str1
has to str2
. If two stringsare equal up to the point at which one terminates (that is, contains a nullcharacter), the longer string is considered greater.
RETURN VALUE |
The return value from strcmp
is 0 if the two strings are equal, less than 0 if str1
compares less than str2
, andgreater than 0 if str1
compares greaterthan str2
. No other assumptions shouldbe made about the value returned by strcmp
.
CAUTION |
If one of the arguments of strcmp
is not properly terminated, a protection or addressing exceptionmay occur. If one of the arguments to the built-in version of strcmp
is a constant, the compiler generates a CLC instruction to performthe entire comparison. If the variable argument is not null terminated, thecharacter-by-character comparison may perform as expected, but a comparisonby the CLC instruction may cause an addressing exception in rare cases.
IMPLEMENTATION |
The compiler generates inline code for strcmp
unless strcmp
is undefined (by an #undef
statement)to prevent this. The inline code may still call a library routine in specialcases.
EXAMPLE |
#include <lcstring.h>#include <stdio.h>#include <stdlib.h>main(){ char command[20]; int n = 0; for(;;) { ++n; printf("Enter command # %d\n", n); puts("Enter quit to terminate/any other command to continue"); gets(command_; if (strcmp(command, "quit") == 0) break; /* Determine whether command is equal to quit. */ strlwr(command); if (strcmp(command, "quit") == 0) exit(0); puts("Did you meant to say quit? (Case is significant.)"); }}
RELATED FUNCTIONS |
memcmp
, strcoll
, strncmp
, strxfrm
SEE ALSO |
Chapter Contents | Previous | Next | Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.