Concatenates two wide-character strings.
#include <wchar.h> wchar_t *wcscat (wchar_t *wstr_1, const wchar_t *wstr_2);Function Variants This function also has variants named _wcscat32 and _wcscat64 for use with 32-bit and 64-bit pointer sizes, respectively. See Section 1.8 for more information on using pointer-size-specific functions.
x | The first argument, wstr_ 1, which is assumed to be large enough to hold the concatenated result. |
#include <stdlib.h> #include <stdio.h> #include <wchar.h> #include <string.h> /* This program concatenates two wide-character strings using the wcscat */ /* function, and then manually compares the result to the expected result */ #define S1LENGTH 10 #define S2LENGTH 8 main() { int i; wchar_t s1buf[S1LENGTH+S2LENGTH]; wchar_t s2buf[S2LENGTH]; wchar_t test1[S1LENGTH+S2LENGTH]; /* Initialize the three wide-character strings */ if (mbstowcs(s1buf, "abcmnexyz", S1LENGTH) == -1) { perror("mbstowcs"); exit(EXIT_FAILURE); } if (mbstowcs(s2buf, " orthis", S2LENGTH) == -1) { perror("mbstowcs"); exit(EXIT_FAILURE); } if (mbstowcs(test1, "abcmnexyz orthis", S1LENGTH+S2LENGTH) == -1) { perror("mbstowcs"); exit(EXIT_FAILURE); } /* Concatenate s1buf with s2buf, placing the result into */ /* s1buf. Then compare s1buf with the expected result */ /* in test1. */ wcscat(s1buf, s2buf); for (i=0; i < S1LENGTH+S2LENGTH-2; i++) { /* Check that each character is correct */ if (test1[i] != s1buf[i]) { printf("Error in wcscat\n"); exit(EXIT_FAILURE); } } printf("Concatenated string: <%S>\n", s1buf); }
Running the example produces the following result:
Concatenated string: <abcmnexyz orthis>