【Cランクレベルアップメニュー】> 【文字列】STEP: 2 部分文字列 (paizaランク D 相当) [難易度: 1295 ±6]
※リンク先へ移動するためには[paiza]へのログインが必要です。
文字 a と文字列 S が与えられるので、 S に a が含まれているかどうか判定し、含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。
入力値(例)
Z
Kirishima
出力値(例)
NO
解答例
1 2 3 4 5 6 |
<?php $a = trim(fgets(STDIN)); $s = trim(fgets(STDIN)); echo (strpos($s, $a) !== FALSE) ? "YES" : "NO"; ?> |
解説
部分文字列を検索する関数strpos()を使いました。
strpos(検索対象文字列, 検索文字列 [, 文字列の中での検索開始位置])
1 2 3 |
<?php strpos('abcabc', 'bc') // => 1 ?> |
見つかった場所をインデックスで返します。見つからない場合はFALSEを返します。
文字列の先頭で見つかった場合は0を返すので、もし先頭の文字が一致していてもFALSE扱いになってしまいます。
そのため、以下のようにすれば、見つかったという条件になります。
1 2 3 |
<?php if(strpos('abcabc', 'a') !== FALSE) ?> |
strpos
関数 | PHP Manual
https://www.php.net/manual/ja/function.strpos.php