設問
Rubyで扱う文字列は,一文字ずつの文字データが並んだ「配列」と呼ばれる構造 になっている.例えば,次のスクリプトに示すように,[ ] 内に0か ら始まる順番を示す数字を指定すると,必要な文字を指定できる.
str = "abcde fghi 123" puts str[4] puts str[3,10] |
一文字だけ切り出して表示しようとすると,chr メソッドを作用させ て,文字コードから実際の文字に変換する必要があります.文字の範囲をカンマ を用いて指定する場合には2番目の出力のように,そのまま文字が表示されます.
以上のことを用いて,次に示す文字列について,乱数で発生させた任意の位置の 文字がアルファベットであるか,数字か,あるいは,スペース(空白文字)であ るかを判定し,例のように表示するスクリプトを case 文を用いて作 成せよ.また,出力には,printf を用いること.
指定する文字列
|
結果表示の例
文字列strの3番目の文字は "D" であり,アルファベット. |
文字列strの31番目の文字は "0" であり,数字. |
文字列strの12番目の文字は " " であり,スペース. |
ここで,文字列の順番を示す数字は0から始めることとしている.
str = "ABCD efghijk LMNOP qrstu VWXYZ 01234 abcd EFGHIJK lmnop QRSTU vwxyz 56789" num = rand(73) case str[num].chr when "0","1","2","3","4","5","6","7","8","9" result = "数字" when " " result = "スペース" else result = "アルファベット" end printf "文字列strの%d番目の文字は \"%s\" であり,%s.\n", num, str[num].chr, result |
設問
Rubyで扱う文字列は,一文字ずつの文字データが並んだ「配列」と呼ばれる構造 になっている.例えば,次のスクリプトに示すように,[ ] 内に0か ら始まる順番を示す数字を指定すると,必要な文字を指定できる.
str = "abcde fghi 123" puts str[4] puts str[3,10] |
一文字だけ切り出して表示しようとすると,chr メソッドを作用させ て,文字コードから実際の文字に変換する必要があります.文字の範囲をカンマ を用いて指定する場合には2番目の出力のように,そのまま文字が表示されます.
以上のことを用いて,次に示す文字列について,乱数で発生させた任意の位置の 文字がアルファベットであるか,数字か,あるいは,スペース(空白文字)であ るかを判定し,例のように表示するスクリプトを case 文を用いて作 成せよ.また,出力には,printf を用いること.
指定する文字列
|
結果表示の例
文字列strの3番目の文字は "d" であり,アルファベット. |
文字列strの31番目の文字は "0" であり,数字. |
文字列strの12番目の文字は " " であり,スペース. |
ここで,文字列の順番を示す数字は0から始めることとしている.
str = "abcd efghijk lmnop qrstu vwxyz 01234 ABCD EFGHIJK LMNOP QRSTU VWXYZ 56789" num = rand(73) case str[num].chr when "0","1","2","3","4","5","6","7","8","9" result = "数字" when " " result = "スペース" else result = "アルファベット" end printf "文字列strの%d番目の文字は \"%s\" であり,%s.\n", num, str[num].chr, result |
Back |