【C言語】Printfにて文字列の文字数(桁数)・空白・左詰め・右詰めを指定する方法 | ウルトラフリーダム

【C言語】Printfにて文字列の文字数(桁数)・空白・左詰め・右詰めを指定する方法

本サイトでは記事内に広告が含まれています。

C言語初心者の方が効率よくコードを書けるようになるためには、とりあえず実践することが大切です。

例えばC言語のprintf関数にて文字列を表示させる際に文字数(桁数)・空白・左詰め・右詰めなどを指定することは重要ですが、どのように処理すればいいのか理解していますか。

ここでは、Visual Studio Codeを用いてC言語のprintf関数にて文字列の文字数(桁数)・空白の有無・左詰め・右詰めを行う方法について解説していきますので、参考にしてみてください。

 

スポンサーリンク

printfにて文字列の文字数(桁数)や空白の有無を指定する方法

それでは以下でC言語にてprintf関数にて文字列の文字数(桁数)を指定する方法について確認していきます(windows、Visual Studio Code使用)

まずはサンプルコードを記載していきます。

 

#include <stdio.h>
int main(void)
{
char * renshuu;
renshuu = “田中さん”;
printf(“%10s”, renshuu);
}

と記載し、これをメモ帳などに貼り付けていきましょう。

 

なお、文字数自体を指定することはできず、最大の「バイト数」を指定することで文字数(桁数)を決めていきます。

今回は最大で10バイトとしてみます。これに対して「田中さん」は全角文字(1文字2バイト)が4つ並んでいるため、8バイトであり、2バイト分(半角スペース2個分)の空白ができることになります。

なお後に詳しく解説するものの、デフォルトでは「右詰め」になるため2バイト分の空白が左側(先頭)にできることになります。

 

実際に実行してみます。

これを任意のファイルに保存し、拡張子を.cに書き換えましょう。

今回はmojisuu.cというファイル名で保存してみました。

 

続いてVisual Studio Codeを立ち上げましょう。

さらに以下の領域にmojisuu.cファイルをドラッグ&ドロップさせます(普通に読み込ませてもOKです)。

 

この状態で右い上の実行ボタン(△)を押していきます。

すると、以下のターミナル領域にてprintfを用いて文字列の文字数を変更させたものを表示させることができました。

文字列の文字数(桁数)が指定され、2バイト分の空白ができ右詰め表示されているのがわかりますね。

 

 

.exeファイル(windowsのため)も併せて実行してみましょう。

ファイル名+.exe(今回はmojisuu.exe)と入力し、ENTERを押すといいです(そのままmojisuuと入れるだけでもOKです)。

 

なお、最大バイト数を20などとすれば、先頭の空白が12バイト分(半角スペース12個、全角スペース6個分)と変更できます。

 

サンプルコードは以下の通りです。

#include <stdio.h>
int main(void)
{
char * renshuu;
renshuu = “田中さん”;
printf(“%20s”, renshuu);
}

実行させると、文字数(桁数)や空白の数が変更でき、右詰めのままであることが確認できました。

 

C言語のprintfにて文字列の左詰め・右詰めを指定する方法

続いて、printfにて文字列を表示させる際に、左詰めや右詰めにする方法について見ていきましょう。

上述の通り、デフォルトではprintfにで文字列を出力する際には右詰めです。左詰めにするには、変換指定子にて%の後に「-」を入れるといいです。

 

サンプルコードは以下の通り。

#include <stdio.h>
int main(void)
{
char * renshuu;
renshuu = “田中さん”;
printf(“%-10s”, renshuu);
}

これで実行させてみましょう。

すると、以下のよう文字列を左詰めにすることができました。

 

なおこのコードでは右側に空白部分が残ってしまうため、気になる方は以下のよう対応するといいです。

 

Printfにて文字列を空白を作らずに左詰めにする方法【C言語】

文字列を空白無しで左詰めにするには、上の「-」ではなく「.」を用いるといいです。

 

サンプルコードは以下の通りです。

#include <stdio.h>
int main(void)
{
char * renshuu;
renshuu = “田中さん”;
printf(“%.10s”, renshuu);
}

これを実行させるだけで、右側の空白が消え、左詰めになるのです。

 

 

なお、printfにて数値の桁数の変更・空白埋め・0埋めをする方法についてはこちらで解説していますので、併せて確認してみてください。

 

 

まとめ Printfにて文字列の空白・左詰め・右詰めを指定する方法【C言語】

ここでは、C言語のprintf関数にて文字列を表示させる際に文字数(桁数)・空白・左詰め・右詰めについて解説しました。

printf関数での使い方はプログラミングの基礎といえるためこの機会に理解しておくといいです。

C言語に関する各操作を学び、日々の業務に役立てていきましょう。

 

コメント

タイトルとURLをコピーしました