[C言語]文字列フォーマット指定子一覧!変換指定子の桁数指定方法についても

C言語
広告

C言語において、変換指定子を使用してデータの出力を行う際に、桁数を制御することが重要です。

変換指定子を正しく使うことで、出力結果のフォーマットを調整することができます。

この記事では、C言語における変換指定子の桁数を制御する方法について解説します。

SPONSORLYNC

printfで基本的な指定子の使い方

まず初めに、%dと%fによる変換指定子の基本的な使用法を紹介します。

これらはそれぞれ整数と浮動小数点数の変換指定子です。

#include <stdio.h>

int main() {
    int integerNumber = 42;
    float floatingPointNumber = 3.14;

    printf("整数: %d\n", integerNumber);
    printf("浮動小数点数: %f\n", floatingPointNumber);
 
   //整数: 42
   //浮動小数点数: 3.140000

    return 0;
}

文字列のフォーマット指定子一覧

以下に、printf()、fprintf()、sprintf()などで使用する代表的な出力フォーマット指定子の一覧を、

指定子、対応する型、説明、使用例の4つの項目でテーブル形式にまとめました。

指定子 対応する型 説明 使用例
%d int 10進数の整数 printf(“%d”, 42);
%i int 10進数の整数 (%dと同じ) printf(“%i”, 42);
%o int 8進数の整数 printf(“%o”, 42);
%x int 16進数の整数 (小文字) printf(“%x”, 42);
%X int 16進数の整数 (大文字) printf(“%X”, 42);
%u unsigned int 符号なし整数 printf(“%u”, 42);
%f double 10進数の浮動小数点数 printf(“%f”, 3.14);
%e double 指数形式の浮動小数点数 (小文字) printf(“%e”, 3.14);
%E double 指数形式の浮動小数点数 (大文字) printf(“%E”, 3.14);
%g double %fまたは%eの短い方で表示 printf(“%g”, 3.14);
%G double %fまたは%Eの短い方で表示 printf(“%G”, 3.14);
%c char 文字 printf(“%c”, ‘A’);
%s char* 文字列 printf(“%s”, “Hello”);
%p void* ポインタの値 printf(“%p”, (void*)ptr);
%*d int 幅を引数で指定 printf(“%*d”, 5, 42);
%.*f double 小数点以下の桁数を引数で指定 printf(“%.2f”, 3.14159);
%- 左寄せ printf(“%-5d”, 42);
%+ 正の数にも符号を表示 printf(“%+d”, 42);
%0 ゼロ埋め printf(“%05d”, 42);
%# 浮動小数点数に小数点を表示。16進数の場合、0xを付加 printf(“%#f”, 3.14);
%space 正の数には空白、負の数には符号を表示 printf(“% d”, 42);
%% パーセント記号を表示 printf(“50%% off”);

これらの指定子を適切に組み合わせることで、様々なデータ型をフォーマットして表示することができます。

広告

変換指定子で桁数を指定して表示する

桁数を指定して表示するには、%Ndや%N.Mfのように指定子の後に桁数を追加します。

ここでNは最小幅、Mは小数点以下の桁数です。

#include <stdio.h>
int main() {
    int integerNumber = 1;
    float floatingPointNumber = 3.1415926535;

    // 最小幅を指定して整数を表示
    printf("整数: %5d\n", integerNumber);

    // 小数点以下の桁数を指定して浮動小数点数を表示
    printf("浮動小数点数: %.2f\n", floatingPointNumber);

    //整数:    1(空白あり)
    //浮動小数点数: 3.14
    return 0;
}
広告

左寄せやゼロ埋めを行う

表示を整えるために、左寄せやゼロ埋めを行うこともできます。

左寄せはマイナス記号を左詰めにし、ゼロ埋めは空いている部分をゼロで埋めます。

#include <stdio.h>

int main() {
    int negativeNumber = -42;
    int positiveNumber = 42;

    // 左寄せとゼロ埋めを行う
    printf("負の整数(左寄せ): %-5d\n", negativeNumber);
    printf("正の整数(ゼロ埋め): %05d\n", positiveNumber);

  //負の整数(左寄せ): -42  (空白あり)
  //正の整数(ゼロ埋め): 00042
    return 0;
}

文字列の最大長を制御する

文字列を表示する際に、最大長を制御することもできます。

これには%.*sを使用します。

#include <stdio.h>

int main() {
    char message[] = "Hello, World!";

    // 文字列の最大長を5に制限して表示
    printf("メッセージ: %.5s\n", message);

    //メッセージ: Hello
    return 0;
}
広告

まとめ

C言語において、変換指定子を用いてデータの出力を行う際には、桁数を制御することが重要です。

%Ndや%N.Mfの形式を使って、整数や浮動小数点数の表示をカスタマイズすることができます。

左寄せやゼロ埋め、文字列の最大長制御なども組み合わせて利用することで、

より柔軟なフォーマットの出力が可能です。

C言語
広告
タイトルとURLをコピーしました