Namespaces
Variants

wcscat, wcscat_s

From cppreference.net
< c ‎ | string ‎ | wide
Definido en el encabezado <wchar.h>
(1)
wchar_t * wcscat ( wchar_t * dest, const wchar_t * src ) ;
(desde C95)
(hasta C99)
wchar_t * wcscat ( wchar_t * restrict dest, const wchar_t * restrict src ) ;
(desde C99)
errno_t wcscat_s ( wchar_t * restrict dest, rsize_t destsz,
const wchar_t * restrict src ) ;
(2) (desde C11)
1) Añade una copia de la cadena ancha apuntada por src al final de la cadena ancha apuntada por dest . El carácter ancho src[0] reemplaza el terminador nulo al final de dest . La cadena ancha resultante termina en nulo. El comportamiento es indefinido si el array de destino no es lo suficientemente grande para los contenidos de tanto str como dest y el carácter ancho nulo terminador. El comportamiento es indefinido si las cadenas se superponen.
2) Igual que (1) , excepto que puede sobrescribir el resto del array de destino (desde el último carácter escrito hasta destsz ) con valores no especificados y que los siguientes errores se detectan en tiempo de ejecución y llaman a la función constraint handler actualmente instalada:
  • src o dest es un puntero nulo
  • destsz es cero o mayor que RSIZE_MAX / sizeof ( wchar_t )
  • no hay terminador nulo en los primeros destsz caracteres anchos de dest
  • ocurriría truncamiento (el espacio disponible al final de dest no cabría para cada carácter ancho, incluyendo el terminador nulo, de src )
  • ocurriría superposición entre las cadenas fuente y destino
Como con todas las funciones con verificación de límites, wcscat_s solo está garantizada que esté disponible si __STDC_LIB_EXT1__ está definido por la implementación y si el usuario define __STDC_WANT_LIB_EXT1__ como la constante entera 1 antes de incluir <wchar.h> .

Contenidos

Parámetros

dest - puntero a la cadena ancha terminada en nulo a la que se va a añadir
src - puntero a la cadena ancha terminada en nulo desde la que se va a copiar
destsz - número máximo de caracteres a escribir, normalmente el tamaño del búfer de destino

Valor de retorno

1) devuelve una copia de dest
2) retorna cero en caso de éxito, retorna distinto de cero en caso de error. Además, en caso de error, escribe L ' \0 ' en dest [ 0 ] (a menos que dest sea un puntero nulo o destsz sea cero o mayor que RSIZE_MAX / sizeof ( wchar_t ) ).

Ejemplo

#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);
}

Salida:

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

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.29.4.3.1 La función wcscat (p: 315)
  • K.3.9.2.2.1 La función wcscat_s (p: 466)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.4.3.1 La función wcscat (p: 432)
  • K.3.9.2.2.1 La función wcscat_s (p: 642-643)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.4.3.1 La función wcscat (p: 378)

Véase también

agrega una cantidad determinada de caracteres anchos de una cadena ancha a otra
(función)
concatena dos cadenas
(función)
(C95) (C11)
copia una cadena ancha a otra
(función)