• ベストアンサー

strcmpの返り値

strcmpを実行したのですが、比較した値は、同じ値なのですが、返り値が"2"です。結果が"2"になることはありますか?どのような意味でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

strcmpは、 最初の引数が、第二引数よりも何文字多いかを戻り値とするようです。 http://php.benscom.com/manual/ja/function.strcmp.php 戻り値が"2"なのであれば、第二引数が半角2文字分(2バイト分)少ないということになります。 文字列中に改行、タブ、スペースなど入っていないかチェックして下さい。 マルチバイト文字(全角)をご利用であれば文字のエンコードは同一のものかも確認されたほうが良いです。

peiee
質問者

お礼

ありがとうございました。<m(__)m>

その他の回答 (1)

  • cobe
  • ベストアンサー率23% (54/227)
回答No.2

マニュアル上は0と正と負を返すと言うので、2を返しても仕様通りですし、正負で判定するのであれば、不自由はしないでしょう。 ただ、2となるケースはみたことないですね。 再現するコード(1行で済むはず)を載せればすぐに解決すると思いますよ。

peiee
質問者

補足

回答ありがとうございます。 CR LFが付いたまま比較していたようです。 再現するコードを載せるとはどういう意味でしょうか? 比較する文字列2つと、返り値はPRINTで表示して、 テストをしました。ところで、インターネットエクスプローラでは、 CR LFは表示できるのでしょうか?

関連するQ&A