名前空間
変種
操作

wcscat, wcscat_s

From cppreference.com
< c‎ | string‎ | wide
 
 
 
 
ヘッダー <wchar.h> で定義
(1)
wchar_t *wcscat( wchar_t *dest, const wchar_t *src );
(C95 以降)
(C99まで)
wchar_t *wcscat( wchar_t *restrict dest, const wchar_t *restrict src );
(C99以降)
errno_t wcscat_s( wchar_t *restrict dest, rsize_t destsz,
                  const wchar_t *restrict src );
(2) (C11 以降)
1) src によって指されるワイド文字列のコピーを、dest によって指されるワイド文字列の末尾に追加します。ワイド文字 src[0] が dest の末尾のヌル終端文字を置き換えます。結果のワイド文字列はヌル終端されます。宛先配列が str と dest の両方の内容と終端ヌルワイド文字を格納するのに十分な大きさでない場合、動作は未定義です。文字列が重複する場合、動作は未定義です。
2) (1) と同じですが、宛先配列の残りの部分(書き込まれた最後の文字から destsz まで)を未指定の値で上書きする可能性があり、実行時に次のエラーが検出され、現在インストールされている 制約ハンドラ 関数が呼び出されます。
  • `src` または `dest` がヌルポインタである場合
  • destsz がゼロであるか、RSIZE_MAX/sizeof(wchar_t) より大きい場合
  • dest の最初の destsz 個のワイド文字にヌル終端文字がない場合
  • 切り捨てが発生する場合(dest の末尾の利用可能なスペースに、ヌル終端文字を含む src のすべてのワイド文字が収まらない場合)
  • ソース文字列と宛先文字列の間に重複が発生する場合
すべての境界チェック関数と同様に、wcscat_s が保証されるのは、実装によって __STDC_LIB_EXT1__ が定義されており、ユーザーが <wchar.h> をインクルードする前に __STDC_WANT_LIB_EXT1__ を整数定数 1 に定義した場合のみです。

目次

[編集] パラメータ

dest - 追加するヌル終端ワイド文字列へのポインタ
src - コピー元のヌル終端ワイド文字列へのポインタ
destsz - 書き込む最大文字数。通常は宛先バッファのサイズ。

[編集] 戻り値

1) `dest` のコピーを返します。
2) 成功した場合はゼロを返します。エラーが発生した場合は非ゼロを返します。また、エラーが発生した場合、destL'\0' を書き込みます(dest がヌルポインタであるか、destsz がゼロであるか、RSIZE_MAX/sizeof(wchar_t) より大きい場合を除く)。

[編集]

#include <wchar.h> 
#include <stdio.h>
#include <locale.h>
 
int main(void) 
{
    wchar_t str[50] = L"Земля, прощай.";
    wcscat(str, L" ");
    wcscat(str, L"В добрый путь.");
    setlocale(LC_ALL, "en_US.utf8");
    printf("%ls", str);
}

出力

Земля, прощай. В добрый путь.

[編集] 参照

  • C17標準 (ISO/IEC 9899:2018)
  • 7.29.4.3.1 wcscat 関数 (p: 315)
  • K.3.9.2.2.1 wcscat_s 関数 (p: 466)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.29.4.3.1 wcscat 関数 (p: 432)
  • K.3.9.2.2.1 wcscat_s 関数 (p: 642-643)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.24.4.3.1 wcscat 関数 (p: 378)

[編集] 関連項目

あるワイド文字列から別のワイド文字列へ、指定された数のワイド文字を追加する
(関数) [編集]
2つの文字列を連結する
(関数) [編集]
(C95)(C11)
あるワイド文字列を別のワイド文字列にコピーする
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)