【C言語】printf関数で文字と文字列をさまざまな書式で出力する方法
C言語では、printf関数と書式指定子(フォーマット指定子)を組み合わせることで、文字や文字列をさまざまな形式で柔軟に出力できます。本記事では、その基本的な手順(アルゴリズム)と、実際に動作するサンプルコードおよび実行結果をわかりやすく解説します。
処理の手順(アルゴリズム)
C言語で文字と文字列を異なる形式で出力するためのアルゴリズムは、以下の通りです。
ステップ1: 出力する1文字を読み込む。
ステップ2: コンパイル時に名前(文字列)を定義する。
ステップ3: 書式指定子を使って、文字をさまざまな形式で出力する。
printf("%c\n%3c\n%5c\n", x, x, x);printf("%3c\n%c\n", x, x);printf("\n");
ステップ4: 書式指定子を使って、文字列をさまざまな形式で出力する。
printf("%s\n", name);printf("%20s\n", name);printf("%20.10s\n", name);printf("%.5s\n", name);printf("%-20.10s\n", name);printf("%5s\n", name);
主な書式指定子の意味
- %c:1文字をそのまま出力する。
- %3c / %5c:指定した桁数(3桁・5桁)の幅で右詰めに出力する。
- %s:文字列をそのまま出力する。
- %20s:全体を20桁の幅で右詰めに出力する。
- %-20s:ハイフン(-)を付けると左詰めになる。
- %.5s / %.10s:ピリオド以降の数字は、出力する最大文字数を指定する(先頭から指定文字数だけ切り出して表示)。
サンプルプログラム1
以下は、文字と文字列をさまざまな形式で出力するC言語のプログラムです。
#include<stdio.h>
main(){
char x = 'T';
static char name[20] = "Tutorials Point";
printf("OUTPUT OF CHARACTERS\n\n");
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("\n");
printf("OUTPUT OF STRINGS\n\n");
printf("%s\n", name);
printf("%20s\n", name);
printf("%20.10s\n", name);
printf("%.5s\n", name);
printf("%-20.10s\n", name);
printf("%5s\n", name);
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
OUTPUT OF CHARACTERS T T T T T OUTPUT OF STRINGS Tutorials Point Tutorials Point Tutorials Tutor Tutorials Tutorials Point
サンプルプログラム2
続いて、別の書式指定子の組み合わせを確認するプログラムを見てみましょう。
#include<stdio.h>
main() {
char x = 'T';
static char name[20] = "Tutorials Point";
printf("OUTPUT OF CHARACTERS\n\n");
printf("%c\n", x);
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("%c\n%3c\n%5c\n", x,x,x);
printf("%3c\n%c\n", x,x);
printf("\n");
printf("OUTPUT OF STRINGS\n\n");
printf("%.5s\n", name);
printf("%-10.10s\n", name);
printf("%.20s\n", name);
printf("%20.10s\n", name);
printf("%20s\n", name);
printf("%10s\n", name);
}
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
OUTPUT OF CHARACTERS
T
T
T
T
T
T
T
T
T
T
T
OUTPUT OF STRINGS
Tutor
Tutorials
Tutorials Point
Tutorials
Tutorials Point
Tutorials Point
まとめ
このように、%cや%sといった基本の書式指定子に加え、フィールド幅(%20sなど)や精度(%.10sなど)、左詰め指定(%-)を組み合わせることで、出力のレイアウトを自由に制御できます。表形式のデータ表示や整形されたレポート出力など、実践的なプログラミングの場面でぜひ活用してみてください。
-
C言語で正方行列をZ字形に表示するプログラム
プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02
-
C言語で配列の下三角行列と上三角行列を出力するプログラム
プログラムの説明 本記事では、入力された配列(行列)から下三角行列と上三角行列を出力するC言語のプログラムを紹介します。 三角行列とは 三角行列とは、下三角行列または上三角行列のいずれかに該当する行列の総称です。 下三角行列 正方行列において、主対角線より上側のすべての要素が0である行列を「下三角行列」と呼びます。 上三角行列 正方行列において、主対角線より下側のすべての要素が0である行列を「上三角行列」と呼びます。 次のような形状を持つ行列は下三角行列(左三角行列)と呼ばれます。 $${\displaystyle L={\begin{bmatrix}\ell _{1,1}&&&&0\\\e