C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス snprintf

🔧 入出力 ・ stdio.h ・ C99

snprintf の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

int snprintf(char *s, size_t n, const char *format, ...);

どんな関数か

書式に従って結果を文字列バッファへ書き込むが、書き込み先のサイズを指定できるためsprintfより安全。バッファが足りない場合も溢れず、本来必要だったサイズが戻り値で分かる。 ログメッセージの組み立てなど、固定サイズバッファへ安全に文字列を作りたい場面の定番関数。

使用例

#include <stdio.h>
int main(void) {
    char buf[16];
    int n = snprintf(buf, sizeof buf, "value=%d", 12345);
    printf("wrote %d chars: %s\n", n, buf);
    return 0;
}

つまずきやすい注意点

⚠️ 戻り値はバッファに収まらなかった場合でも「本来必要だった文字数」を返すため、実際に書き込まれた量と混同しない。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

snprintf と一緒に使う関数

sprintf書式に従って結果を文字列バッファへ書き込む。バッファの大きさを指定できないため、書き込み量が確保サイズを超えるとバッファ… fprintf書式に従って指定したストリームへ出力する。printfのストリーム指定版で、ファイルやログへの整形出力によく使う。標準エ…

この関数が出てくる解説

安全な文字列操作——バッファサイズの意識バッファオーバーフローの危険を理解し、snprintfやfgetsで安全に書ける

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fgets fopen fprintf fputc fputs fread fscanf fseek ftell fwrite getchar

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る