

#include <string.h> int strcmp(const char *str1, const char *str2);
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 strings
are equal up to the point at which one terminates (that is, contains a
null character), the longer string is considered greater.
strcmp is 0 if the two strings are equal,
less than 0 if str1 compares less than str2, and greater than
0 if str1 compares greater than str2. No other assumptions
should be made about the value returned by strcmp.
strcmp is not properly terminated, a
protection or addressing exception may occur. If one of the arguments to the
built-in version of strcmp is a constant, the compiler generates a CLC
instruction to perform the entire comparison. If the variable argument is not
null terminated, the character-by-character comparison may perform as expected,
but a comparison by the CLC instruction may cause an addressing exception in
rare cases.
strcmp unless strcmp is
undefined (by an #undef statement) to prevent this. The inline
code may still call a library routine in special cases.
#include <lcstring.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
char command[20];
int n = 0;
for(;;) {
++n;
printf("Enter command # %dn", 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 mean to say quit? (Case is significant.)");
}
}
memcmp, strcoll, strncmp, strxfrm
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.