跳转到内容

C 编程/wchar.h/wcscat

来自维基教科书,自由的教科书

在 C 语言中,函数 **wcscat()** 包含在头文件 wchar.h 中。此函数与 strcat 非常相似。
此函数用于连接两个宽字符字符串。

#include <wchar.h>
wchar_t *wcscat(wchar_t *a, const wchar_t *b);

strcat 和 Wcscat 函数的作用相同,即连接两个字符串。区别在于 strcat 函数接受(普通)**字符字符串**,而 wcscat 函数接受**宽字符字符串**作为参数。
wcscat 函数将宽字符字符串,例如 **b**(包括字符串 b 末尾的 '\0')复制到宽字符字符串 **a** 的末尾。字符串 a 的 '\0' 字符被字符串 'b' 的第一个字符替换。即函数将字符串 'b' 附加到字符串 'a' 的末尾。如果宽字符字符串 'a' 是 "hello",而宽字符字符串 'b' 是 "world"。调用 wcscat(a , b) 函数后,字符串 'a' 变成 "helloworld",字符串 'b' 保持不变。宽字符串 'a' 必须至少有 (strlen(a) + strlen(b) +1) 个字节的内存,以便它可以存储 wcs(宽字符字符串)'a',wcs 'b' 和 '\0'。

示例程序

[编辑 | 编辑源代码]
#include <stdio.h>
#include <wchar.h>
#define SIZE 32

int main() {

      wchar_t destination[SIZE] = L"Hello"; /*SIZE should be sufficient enough to store both strings and NULL termination '\0' */
      wchar_t * source  = L" World";
      wchar_t * ptr;

      ptr = wcscat( destination, source );
      printf(" %ls\n", ptr ); /* prints "hello World"*/
     /*OR printf("%ls\n" , destination);*/

      return 0;

}

程序的输出将是 ' Hello World '。
宽字符字符串 'source'(World) 附加到宽字符字符串 'destination'(Hello) 的末尾。

返回值

[编辑 | 编辑源代码]

wcscat() 函数返回指向宽字符字符串 'a' 的指针,即指向连接的字符串的指针。

华夏公益教科书