C

wcscat

wcscat, wcscat_s

在头文件中定义
(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是空指针

作为所有边界检查函数,wcscat_s只有在被__STDC_LIB_EXT1__实现定义__STDC_WANT_LIB_EXT1__并且1在包含之前用户定义为整数常量时才能保证可用wchar.h

参数

dest-指向要附加到的以空字符结尾的宽字符串
src-指向要从中复制的以空字符结尾的宽字符串
destsz-最大写入字符数,通常是目标缓冲区的大小

返回值

1)返回一份副本 dest

2)在成功时返回零,错误时返回非零值。此外,在错误,写入L'\0'dest[0](除非dest是空指针或destsz为零或大于RMAX_SIZE/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 }

输出:

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

参考

  • C11标准(ISO/IEC 9899:2011):

另请参阅

wcsncatwcsncat_s(C95)(C11)从一个宽字符串追加一定数量的宽字符到另一个(函数)
strcatstrcat_s(C11)连接两个字符串(函数)
wcscpywcscpy_s(C95)(C11)将一个宽字符串复制到另一个(函数)

| 用于wcscat |的C ++文档