Copyright Digital Equipment Corp. All rights reserved.

Example

       #include <stdlib.h>
       #include <stdio.h>
       #include <wchar.h>
       #include <string.h>

       /* This program concatenates two wide-
character strings using   */
       /* the wcsncat function, and then manually compares the result  */
       /* to the expected result                                       */

       #define S1LENGTH 10
       #define S2LENGTH 8
       #define SIZE     3

       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) == (size_t)-1) {

               perror("mbstowcs");
               exit(EXIT_FAILURE);
           }

           if (mbstowcs(s2buf, " orthis", S2LENGTH) == (size_t)-1) {

               perror("mbstowcs");
               exit(EXIT_FAILURE);
           }

           if (mbstowcs(test1, "abcmnexyz orthis", S1LENGTH + SIZE)

               == (size_t)-1) {

               perror("mbstowcs");
               exit(EXIT_FAILURE);
           }

       /* Concatenate s1buf with SIZE characters from s2buf, */
       /* placing the result into s1buf. Then compare s1buf  */
       /* with the expected result in test1.                 */

           wcsncat(s1buf, s2buf, SIZE);

           for (i = 0; i <= S1LENGTH + SIZE - 2; i++) {
               /* Check that each character is correct */
               if (test1[i] != s1buf[i]) {
                   printf("Error in wcsncat\n");
                   exit(EXIT_FAILURE);
               }

           }

           printf("Concatenated string: <%S>\n", s1buf);
       }

     Running the example produces the following result:

       Concatenated string: <abcmnexyz or>