Namespaces
Variants

wcscat, wcscat_s

De es.cppreference.net
< c | cadena | ancha
 
 
 
 
Definido en el encabezado <wchar.h>
wchar_t* wcscat( wchar_t* dest, const wchar_t* src );
(1) (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) Agrega 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 no está definido si el arreglo destino no es lo suficientemente grande para el contenido de src y dest y el carácter ancho nulo de terminación. El comportamiento no está definido si las cadenas se superponen.
2) Igual que (1), excepto que puede sobrescribir el resto del arreglo 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 manejador de restricciones instalada actualmente:
  • 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 podría albergar todos los caracteres anchos, incluido el terminador nulo, de src)
  • ocurriría superposición entre la cadena origen y la cadena destino
Al igual que con todas las funciones con verificación de límites, wcscat_s solo se garantiza 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>.

Parámetros

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

Valor de retorno

1) devuelve una copia de dest
2) devuelve cero en éxito, devuelve distinto de cero en error. Además, en 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 <locale.h>
#include <stdio.h>
#include <wchar.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 C23 (ISO/IEC 9899:2024):
  • 7.31.4.3.1 La función wcscat (pág. 439)
  • K.3.9.3.2.1 La función wcscat_s (pág. 665-666)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.29.4.3.1 La función wcscat (pág. 315)
  • K.3.9.2.2.1 La función wcscat_s (pág. 466)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.4.3.1 La función wcscat (pág. 432)
  • K.3.9.2.2.1 La función wcscat_s (pág. 642-643)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.4.3.1 La función wcscat (pág. 378)

Véase también

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