On Sat, 16 Jan 1999, Brian wrote: > Given the following example: > > if (!str_cmp("warriors", arg)) { > GET_CLASS(ch) = CLASS_WARRIOR; > sprintf(buf, "Warrior Guild -- Arg: %s\r\n", arg); > send_to_char (buf, ch); > } > > > I was under the assumption that strcmp and str_cmp returned TRUE when > the two strings matched. Is this not true? No, strcpmp() and related functions return FALSE if the strings are the same. The example above is correct. > first arg is smaller than the 2nd, it produces a "less than 0" response > and if arg1 is greater than arg2 it produces a "greater than 0" response > (which I guess would be 1, which would be TRUE). However, this seems to > indicate numeric variables and we're comparing alpha characters.... How > does strcmp work then? Will strcmp always read FALSE on a comparison > that's equal? And is there any possible way that a comparison between > alpha strings can be "less than zero"? Anything other that 0 is TRUE, including -1. The prototype for strcmp() looks something like this: int strcmp(const char *s1, const char *s2); Which means it returns an int, depending on how the strings compare. "Misery is boundless" -Xual the Torturer, on the Eve of the Sundering. Danathara Online RPG telnet://danathara.ml.org:4000 +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST