非常教程

C参考手册

字符串 | Strings

wcscat

在头文件<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)
  • 在第一个destsz字节中没有空终止符dest
  • 将会发生截断(在结尾的可用空间dest不适合每个宽字符,包括空终止符src
  • 源和目标字符串之间会发生重叠

作为所有边界检查函数,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):
    • 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)

另请参阅

wcsncatwcsncat_s(C95)(C11)

从一个宽字符串追加一定数量的宽字符到另一个(函数)

strcatstrcat_s(C11)

连接两个字符串(函数)

wcscpywcscpy_s(C95)(C11)

将一个宽字符串复制到另一个(函数)

| 用于wcscat |的C ++文档

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。