【PHP入門】sprintf関数の使い方まとめ(0埋め、スペース埋め)

こんにちは!エンジニアのノムラです。

PHPではC言語同様にsprintf関数で指定したフォーマットで文字列を生成することができます。

この記事では、

  • sprintfとは?
  • sprintfの基本的な使い方
  • 型指定子一覧表
  • という基本的な内容から、

  • 0で桁数を揃える方法(0埋め)
  • 空白で桁数を揃える方法
  • などの応用的な使い方に関しても解説していきます。

    今回はsprintfで文字列を生成する方法について、わかりやすく解説します!

    sprintf関数とは

    指定したフォーマットで文字列を生成するにはsprintf関数を使用します。

    書き方:

    spritf関数は第一引数に生成する文字列のフォーマットを指定し、第二引数〜より生成する文字列や値を指定します。

    第一引数には、以下のように文字列と型指定子を組み合わせたフォーマットを指定します。

    この例では文字列で「sprintfのテスト:AAAA5」が生成されます。

    もう迷わない!型指定子一覧

    spritf関数でフォーマットするには型指定子を使います。

    たくさん種類が用意されていて、迷ってしまうこともあると思うので、今回は表にまとめてみました。

    型指定子説明
    %%文字。型指定子の先頭に指定します。
    b2進数の整数。
    cASCII値の文字。
    d10進数の整数。
    e科学記法(例 1.2e+2)。
    E%eと同様だが大文字を指定 (例 1.2E+2)。
    fdouble型の浮動小数点数。
    Ffloat型の浮動小数点数。
    g%eおよび%fの短縮形。
    G%Eおよび%fの短縮形。
    o8進数の整数。
    s文字列。
    u符号無し10進数との整数。
    x16進数(小文字で)の整数。
    X16進数(大文字で)の整数。

    これがあればどの型指定子を使えばいいのか一目瞭然ですね!

    sprintf関数を実践的に使ってみる

    では実際にsprintf関数の使い方を見ていきましょう。

    フォーマットを作成してみる

    以下にsprintf関数を使用したサンプルを紹介します。

    サンプルプログラム1

    実行結果:

    サンプルでは生成する文字列のフォーマットで’本日は%d年%d月%d日です。’と、10進数の整数である型指定子%dを3回指定しています。

    第二引数~より指定した数値型の変数が%dの箇所に順番に当てはめられます。

    また、以下のように数値と文字列の型などを組み合わせてフォーマットを指定できます。

    サンプルプログラム2

    実行結果:

    0で桁数を揃える(0埋め)

    データを決められた桁数で揃えたいとき、sprintf関数を使用すれば、桁数を0で揃えることができます。

    例えば、以下のように桁数が不揃いなデータがあるとします。

    1111
    22222
    33
    4
    555555

    このようなデータを7桁固定で統一する必要がある場合、sprintfで型指定子d(10進数の整数)を指定すれば桁数を揃えることができます。

    サンプルプログラム1

    実行結果:

    型指定子%の後にd(10進数の整数)と桁数(表示幅指定子)を指定すれば桁を0埋めできることがわかりますね!

    また、以下のように0(パティング指定子)と桁数(表示幅指定子)を指定することで桁数を調整することもできます。

    サンプルプログラム2

    実行結果:

    左寄せで0埋めする場合は型指定子%の後に-(マイナス)を指定します。

    以下に左寄せで桁数を揃える方法を記述します。

    サンプルプログラム3


    実行結果:

    空白で桁数を揃える(スペース埋め)

    sprintf関数を使用すれば、文字列を空白で埋めて揃えることも可能です。

    文字列を空白で埋める場合は、表示幅指定子で空白スペースを埋める桁数を指定します。

    サンプルプログラム

    実行結果:

    サンプルでは桁数を10で指定していますので、文字列’hello’の5桁の前に空白5桁が付加されることになります。

    まとめ

    ここでは、指定したフォーマットで文字列を生成するsprintfについて、基本的な使い方から

    0埋めで桁数を揃える方法、
    スペース埋めで空白で埋める方法

    などについて解説しました。

    sprintf関数を使用して、文字列を指定したフォーマットで生成することはよくありますので、この機会にぜひ覚えておきましょう。

    もしsprintf関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    ノムラ

    ノムラ

    WEBエンジニアをやっています。
    プログラミング初心者にもわかりやすく解説ができるよう頑張ります。

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説