トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 | ワイド文字の配列へ、変換指定に沿って変換されたワイド文字列を出力する。 | |
ヘッダ | stdio.h、wchar.h | |
形式 | int swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, …); | |
引数 | s | 結果を格納する配列を指すポインタ。 |
n | 終端に書き込まれる L’\0’ を含めた、格納する最大文字数。あるいは 0。 | |
format | 変換指定を含んだ、あるいは含まないプレーンなワイド文字列。 | |
… | format に含まれている変換指定子に対応した個数のパラメータ。 | |
戻り値 |
実際に書き込まれた文字数(末尾のヌル文字を除く)を返す。エラーが発生した場合は、負数を返す。 引数 n 以上の文字数の書き込みが必要であった場合にも負数を返す。 |
|
詳細 |
変換指定を行い生成されたワイド文字列のうち、引数n で指定した文字数 - 1 文字までが格納され、末尾に L’\0’ が付加される。変換指定については、printf関数を参照。 関数名からして、マルチバイト文字列を扱う sprintf関数と対応していそうだが、引数 n が加わっており、安全性が増している。snprintf関数と似ているようでもあるが、引数n の意味するところが違う。snprintf関数と違って、変換後の文字列の長さが、格納先の配列の大きさを超えているときには、バッファオーバーフロー📘を起こすことなく失敗する。 |
|
注意 |
必要な個数の実引数が指定されていない場合の動作は未定義📘。余分に指定されている場合には、評価📘は行われるが、swprintf関数としては無視する。 引数n に指定する値は文字数であって、大きさではないので、sizeof を使って計算する場合には注意が必要である。 |
|
使用例 |
実行結果:
|
|
関連 |
マルチバイト文字版は sprintf関数のようでもあるし、snprintf関数のようでもあるが、いずれも仕様が異なるので注意。 引数に … ではなく、va_list を用いたバージョンとして、vswprintf関数がある。 |
|
解説章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。
(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |