- ベストアンサー
strcmpの返り値
strcmpを実行したのですが、比較した値は、同じ値なのですが、返り値が"2"です。結果が"2"になることはありますか?どのような意味でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
strcmpは、 最初の引数が、第二引数よりも何文字多いかを戻り値とするようです。 http://php.benscom.com/manual/ja/function.strcmp.php 戻り値が"2"なのであれば、第二引数が半角2文字分(2バイト分)少ないということになります。 文字列中に改行、タブ、スペースなど入っていないかチェックして下さい。 マルチバイト文字(全角)をご利用であれば文字のエンコードは同一のものかも確認されたほうが良いです。
その他の回答 (1)
- cobe
- ベストアンサー率23% (54/227)
回答No.2
マニュアル上は0と正と負を返すと言うので、2を返しても仕様通りですし、正負で判定するのであれば、不自由はしないでしょう。 ただ、2となるケースはみたことないですね。 再現するコード(1行で済むはず)を載せればすぐに解決すると思いますよ。
質問者
補足
回答ありがとうございます。 CR LFが付いたまま比較していたようです。 再現するコードを載せるとはどういう意味でしょうか? 比較する文字列2つと、返り値はPRINTで表示して、 テストをしました。ところで、インターネットエクスプローラでは、 CR LFは表示できるのでしょうか?
お礼
ありがとうございました。<m(__)m>