風で飛んでいくチラ裏

気ままに雑記メモ書き殴り。古い記事は別blogからの引っ越しなのでレイアウトがアレです。

strncmp

int strncmp(const char *s1, const char *s2, size_t len) s1とs2をlen分比較し、その結果を返す。 s1 > s2 なら正、 s1 = s2 なら0、 s1 < s2 なら負の値。 0以外の場合の絶対値は実装依存。 大体は違いがあった文字の差が返る。 s1 = "1003"; s2 = "1000"; だと、 strncmp(s1, s2, strlen(s2)); は 3 であることが多い。 (unsigned)で計算しているかどうかは微妙。 0x20から0x7Fの範囲のみで構成された 文字列で比較すると色々安全かも。 細かく疑問なこと ・ヌルチェックはs1, s2両方でやってる?(lenは普通s2の長さ以上は入れないはずだから、s2のヌルチェックはしない?)