【Bランクレベルアップメニュー】> 【アルファベット探し】STEP: 2 アルファベットの範囲の文字の出力 (paizaランク D 相当) [難易度: 1442 ±7]
※リンク先へ移動するためには[paiza]へのログインが必要です。
英大文字の文字列が入力されます。
この文字列の先頭1文字と末尾1文字で表される範囲に含まれる文字をすべて出力してください。
範囲とは、アルファベット順に並べた英大文字の列('A', 'B', 'C', ..., 'Z')について、先頭の文字の出現位置から末尾の文字の出現位置までの部分列のことです。
たとえば、先頭の文字が'G'で末尾の文字が'O'で表される範囲は、('G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O')となります。
出力はアルファベット順に表示し、1文字表示するたびに改行してください。
入力値(例)
GINO
出力値(例)
G
H
I
J
K
L
M
N
O
解答例
1 2 3 4 5 6 7 8 9 10 |
<?php $str = trim(fgets(STDIN)); $head = $str[0]; $tail = substr($str, -1); for($i = ord($head); $i <= ord($tail); $i++) { echo chr($i). "\n"; } ?> |
解説
1行目の入力値の文字列の1文字目と最後の文字を取り出します。
1 2 |
$head = $str[0]; $tail = substr($str, -1); |
for()文で
$i = ord($head);
$i <= ord($tail);をセットします。
ord()関数は、引数に与えた文字の文字コードを返す関数です。文字コードに変換しないと、「Z」が「YZ」までと認識されてしまいます。
1 |
echo chr($i) . "\n"; |
for()文の中で$iを表示していきます。そのままだと文字コードが出力されてしまうので、引数に与えた文字コードの文字を返す関数、chr()関数を使います。