備忘録

Paiza BランクレベルアップメニューPHP『文字列を切り取る』編 解答。

STEP:1 文字列の分割

<?php
    $n = explode(" ", trim(fgets(STDIN)));
    echo $n[0] . "\n";
    echo $n[1] . "\n";
?>

 

下記の問題はfor()を使った場合です。

<?php
    $n = explode(" ", trim(fgets(STDIN)));
    $count = count($n);
    for($i=0; $i<$count; $i++){
        echo $n[$i] . "\n";
    }
?>

 

下記の問題はforeach()を使った場合です。

<?php
    $n = explode(" ", trim(fgets(STDIN)));
    foreach($n as $value){
        echo $value . "\n";
    }
?>

 

STEP:2 整数の足し算

<?php
    $ab = explode(" ", trim(fgets(STDIN)));
    echo $ab[0] + $ab[1] . "\n";
?>

 

下記の問題はlist()を使った場合です。

<?php
    list($a, $b) = explode(" ", trim(fgets(STDIN)));
    echo $a + $b . "\n";
?>

 

STEP:3 文字列の長さ

<?php
    $s = str_split(trim(fgets(STDIN)));
    echo count($s) . "\n";
?>

 

下記の問題はstrlen()を使った場合です。参考までに、バイト数を取得する場合「strlen」->戻り値は文字列のバイト数:strlen(“abcあいう”)→9(バイト数で指定する為、全角文字が含まれる文字列に対して行う場合は注意が必要です。全角文字は1文字2バイトです。)こちらでも正解ですが、問題にそった解答では無い気がします。

<?php
    echo strlen(trim(fgets(STDIN)));
?>

 

下記の問題はmb_strlen()を使った場合です。参考までに、文字数を取得したい場合:mb_strlen(“abcあいう”)→6問題的にはこちらが合ってる気がします。

<?php
    echo mb_strlen(trim(fgets(STDIN)));
?>

 

STEP: 4 文字列の1文字目

<?php
    $s = str_split(trim(fgets(STDIN)));
    echo $s[0];
?>

 

下記の問題はsubstr()を使った場合です。参考までに、文字列の中から指定した位置から指定した分だけ文字を取り出します。(バイト数で指定する為、全角文字が含まれる文字列に対して行う場合は注意が必要です。全角文字は1文字2バイトです。)

<?php
    echo substr(trim(fgets(STDIN)), 0, 1);
?>

 

下記の問題はmb_substr()を使った場合です。文字数で指定した場合には「mb_substr」関数を使います。半角文字も全角文字も1文字は1文字として扱います。

<?php
   echo mb_substr(trim(fgets(STDIN)), 0, 1);
?>

 

STEP:5 間の整数

下記の問題はwhile()を使った場合です。

<?php
    list($a, $b) = explode(" ", trim(fgets(STDIN)));
    while($a <= $b){
        echo $a++ . "\n";
    }
?>

 

下記の問題はfor()を使った場合です。

<?php
    list($a, $b) = explode(" ", trim(fgets(STDIN)));
    for($i=$a; $i<= $b; $i++){
        echo $i . "\n";
    }
?>

 

FINAL問題 文字列を切り取る

下記の問題はstr_split()を使いました。文字列を配列に変換します。
文字列を区切る長さを指定することもできます。

<?php
    list($a, $b) = explode(" ", trim(fgets(STDIN)));
    $s = str_split(trim(fgets(STDIN)));
    for($i=$a-1; $i<$b; $i++){
        echo $s[$i];
    }
    echo "\n";
?>

 

-備忘録

© 2024 Yj Blog Powered by AFFINGER5