2024.06.21
【sprintf関数】C言語で文字列を自由に操る
sprintfは、C言語で文字列にフォーマットして格納する関数です。一見難しそうに見えますが、基本的な使い方さえマスターすれば、様々な場面で役立ちます。
この記事では、sprintfの基礎知識から実践的な使い方まで、初心者でもわかりやすく解説します。コード例を豊富に掲載しているので、実際に手を動かしながら理解を深めることができます。
この記事でわかること
- sprintf関数とは?
- sprintf関数のサンプルコード
- sprintf関数を使うメリット
目次
sprintf関数とは

sprintf関数は、C言語において文字列にフォーマットして格納する関数です。
この関数を使用することで、変数の内容を所定の形式に沿って文字列に変換し、新たな文字列を作成することが可能になります。例えば、整数や浮動小数点数、文字列などを組み合わせて、特定の形式で画面に表示したい場合や、文字列をファイルに保存する際に便利です。書式指定子を用いて、出力するデータの型や桁数、小数の精度などを細かく指定できるため、出力形式を柔軟にコントロールできる点が大きな特徴です。
<sprintf関数のサンプルコード

まずは、sprintf関数の基本的な使い方を学びましょう。
こちらのコードでは、以下が実行されています。
- %d:整数を10進表記で文字列に変換
- %f:小数点表記で文字列に変換
- %s:文字列をそのまま出力
[C言語]
#include <stdio.h>
int main() {
int num1 = 10;
double num2 = 3.14;
char str[] = "Hello, world!";
// 整数を文字列に変換
char buf1[100];
sprintf(buf1, "%d", num1);
printf("buf1: %s\n", buf1); // 出力: buf1: 10
// 浮動小数点数を文字列に変換
char buf2[100];
sprintf(buf2, "%f", num2);
printf("buf2: %s\n", buf2); // 出力: buf2: 3.140000
// 文字列を連結
char buf3[100];
sprintf(buf3, "%s, %s!", str, buf1);
printf("buf3: %s\n", buf3); // 出力: buf3: Hello, world!, 10!
}
書式指定子

sprintf関数は書式指定子を使いこなすことで、さらに高度な文字列フォーマットが可能になります。
| 書式指定子 | 効果 | 例 |
|---|---|---|
| %d | 整数を10進表記で出力 | %d: 123 |
| %x | 整数を16進表記で出力 | %x: 0x7b |
| %f | 小数点数表記で出力 | %f: 3.141593 |
| %e | 浮動小数点数を科学表記で出力 | %e: 3.141593e+00 |
| %c | 文字を出力 | %c: A |
| %s | 文字列を出力 | %s: Hello, world! |
[C言語]
#include <stdio.h>
int main() {
int age = 20;
float pi = 3.1415926535;
// 様々な書式指定文字を使用
printf("年齢:%d歳\n", age);
printf("円周率:%f\n", pi);
printf("文字:%c\n", 'A');
printf("パーセン記号:%%\n");
return 0;
}出力結果
年齢:20歳 円周率:3.141592 文字:A パーセン記号:%
書式指定子の詳細

書式指定文字には、さらに細かいオプションを設定することができます。書式指定文字の前に%記号を付けて指定します。
- 幅:%10d のように数字を指定することで、出力される文字列の幅を設定できます。
- 精度:%.2f のように小数点以下桁数を指定することで、出力される浮動小数点数の精度を設定できます。
- 左寄せ/右寄せ:%-10d のように – を指定することで、文字列を左寄せにできます。
#include <stdio.h>
int main() {
int age = 20;
// 整数を右寄せで5桁に表示
printf("年齢:%*d歳\n", 5, age);
return 0;
}出力結果
年齢: 20歳
sprintf関数を使うメリット

- 可読性の高いコード:書式指定子を使うことで、コードの意味がわかりやすくなります。
- 効率的なメモリ使用:sprintf関数を使うことで、必要なサイズのバッファを用意して文字列を生成できるため、メモリ使用量を抑えることができます。
- 柔軟な文字列出力:様々な書式を使って、思い通りの文字列を出力することができます。
sprintf関数を使う際の注意点

- 書式指定文字と引数の数が一致していないと、予期せぬ結果になる可能性があります。
- バッファサイズが不足すると、文字列が途中で切断される可能性があります。
まとめ

sprintf関数は、C言語で文字列をフォーマットして格納することができます。書式指定子を理解 ・使いこなすことで可読性が高く効率的なコードを書くことができます。
この記事を参考に、sprintf関数を使いこなして、様々な場面で活用しましょう!
投稿者
-
システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。
新着情報
同じカテゴリの記事
新着記事
人気の記事



