「C言語/標準ライブラリ/stdlib.h」の版間の差分

削除された内容 追加された内容
573 行
== 多バイト文字列・ワイド文字列変換関数 ==
<ref>『JISX3010:2003』p.232「7.20.8 多バイト文字列・ワイド文字列変換関数」</ref>
多バイト文字列関数の動作は、その時点のロケールのLC_CTYPEカテゴリの影響を受ける。
=== mbstowcs関数 ===
<ref>『JISX3010:2003』p.232「7.20.8.1 mbstowcs関数」</ref>
*形式
<pre>
#include <stdlib.h>
 
size_t mbstowcs(wchar_t * restrict pwcs, const char * restrict s, size_t n);
</pre>
*引数
:pwcs 変換したワイド文字列を格納する配列
:
:s 変換する多バイト文字列
:n 変換したワイド文字列の文字数
*返却値
:不正な多バイト文字が含まれているとき、(size_t)(-1)。
:
:それ以外の場合、変更した配列要素の数(ただし終端ナルワイド文字は含めない)。
*機能
:mbstowcs関数とは、sが指す配列中の初期シフト状態で始まる多バイト文字の並びを、対応するワイド文字の並びに変換し、n個以下のワイド文字をpwcsが指す配列に格納する関数である。
:
:ナル文字は、ナルワイド文字に変換する。
:ナル文字に続く多バイト文字を調べることはなく、変換もしない。
:各多バイト文字は、mbtoec関数の変換状態が影響を受けないことを除いて、mbtowc関数の呼び出しによる場合と同じ規則で変換する。
 
:pwcsが指す配列内でn個以下の要素しか変更しない。
:領域の重なり合うオブジェクト間でコピーが行われるとき、その動作は未定義である。
*例
<pre>
593 ⟶ 604行目:
*形式
<pre>
#include <stdlib.h>
 
size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n);
</pre>
*引数
:s 変換した多バイト文字列を格納する配列
:
:pwcs 変換するワイド文字列
:n 変換した多バイト文字列の文字数
*返却値
:正しい多バイト文字に対応しないワイド文字が含まれているとき、(size_t)(-1)。
:
:それ以外の場合、変更されたバイト数(ただし終端ナル文字は含めない)。
*機能
:wcstombs関数とは、pwcsが指す配列中のワイド文字の列を、初期シフト状態から始まる対応する多バイト文字の並びに変換し、sが指す配列に格納する関数である。
:
:ただし、多バイト文字が合計でnバイトの上限を超えるとき、又はナル文字が格納された時、配列への格納を終了する。
:各ワイド文字は、wctomb関数の変換状態が影響を受けないことを除いて、wctomb関数の呼び出しによる場合と同じ規則で変換する。
 
:sが指す配列内でnバイト以下の要素しか変更しない。
:領域の重なり合うオブジェクト間でコピーが行われるとき、その動作は未定義である。
*例
<pre>