プログラミング言語 C

関数 str_cmp は 文字列 s と t とを比較して、s が t より - 辞書での編集順のように - 小さいか 等しいか または 大きいか によって、それぞれ 負、0、正 の値を返す。
返り値 (value) は、s と t が 最初に 一致しなくなる ポジションでの 文字の引算によって 得られる。

  1. /* str_cmp : s < t ならば負の数、s == t なら 0、s > t なら正の整数を返す */
  2. int str_cmp(char *s, char *t)
  3. {
  4. int i;
  5. for (i = 0; s[i] == t[i]; i++)
  6. if (s[i] == '\0')
  7. return 0;
  8. return s[i] - t[i];
  9. }

関数 str_cmp の ポインタ版は 次の通り。

  1. int str_cmp(char *s, char *t)
  2. {
  3. for ( ; *s == *t; s++, t++)
  4. if (*s == '\0')
  5. return 0;
  6. return *s - *t;
  7. }

(p129-130)