実行すると「0」と表示されるコードとして正しいものを全て選択してください。

(A)print strcmp(‘Hello’,’Hello’);

(B)print strcmp(‘Hello’,’HELLO’);

(C)print strcasecmp(‘Hello’,’HELLO’);

(D)print strcasecmp(‘HELLO’,’HELLO’);

答え

(A)(C)(D)

解説

printはほぼ「echo」と同じで、出力を意味します。

strcmp()関数では、文字列の比較をおこないます。

第1引数 が 第2引数 よりも小さければ -1 を、
第1引数 が 第2引数よりも大きければ 1 を、
等しければ 0 を返します。

また大文字と小文字の区別をします。

なので、(B)の

print strcmp('Hello','HELLO');

では、大文字小文字の区別をおこないますので、「32」と表示されます。

strcasecmp()関数では、strcmp()と同じですが、大文字と小文字の区別をしません。

ので、(C)の

print strcasecmp('Hello','HELLO');

では、大文字と小文字の区別をしませんので出力は「0」となります。

今回の問題のキモ

  • strcmp()関数は第一引数と第二引数の文字列の比較を行う。また大文字と小文字を区別して比較します。
  • strcasecmp()関数は大文字と小文字の区別をしません
タイトルとURLをコピーしました