C 库 - strcat() 函数



C 库 strcat() 函数接受两个指针变量作为参数(例如 destsrc),并将 src 指向的字符串追加到 dest 指向的字符串末尾。此函数仅连接字符串数据类型。我们不能使用任何其他数据类型,例如 int、float、char 等。

语法

以下是 C 库 strcat() 函数的语法 -

char *strcat(char *dest_str, const char *src_str)

参数

此函数接受以下参数 -

  • dest_str - 这是指向目标数组的指针,该数组应包含 C 字符串,并且应足够大以容纳连接后的结果字符串。

  • src_str - 要追加的字符串。这应该不与目标重叠。

返回值

此函数返回指向结果字符串(即 dest)的指针。

请注意,该函数在运行时动态地组合字符串。

示例 1

以下是说明使用 strcat() 函数进行字符串连接的代码片段的基本 C 库程序。

#include <stdio.h>
#include <string.h>
int main() {
   char dest_str[50] = "C ";
   const char src_str[] = "JAVA";

   // Concatenate src_str to dest_str
   strcat(dest_str, src_str);

   // The result store in destination string
   printf("%s", dest_str); 
   return 0;
}

输出

执行上述代码后,我们将获得以下输出 -

Final destination string : |This is destinationThis is source|

示例 2

在以下示例中,我们使用 strcpy() 以及 strcat() 函数,将新字符串 (“point”) 与现有字符串 (“tutorials”) 合并。

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
   char str[100]; 
   
   // Copy the first string to the variable
   strcpy(str, "Tutorials"); 

   // String concatenation 
   strcat(str, "point"); 

   // Show the result
   printf("%s\n", str); 
   return 0; 
}

输出

上述代码产生以下输出 -

Tutorialspoint

示例 3

虽然连接两个不同的字符串始终需要两个参数,但这里我们使用整数作为 strcat() 的参数,这会导致错误。

#include <stdio.h>
#include <string.h>
int main()
{   
    int x = 20;
    int y = 24;
    strcat(x, y);
    printf("%d", x);
    return 0;
}

输出

执行上述代码后,我们将获得以下结果 -

main.c: In function ‘main’:
main.c:7:12: warning: passing argument 1 of ‘strcat’ makes pointer from integer without a cast [-Wint-conversion]
    7 |     strcat(x, y);
      |            ^
      |            |
      |            int
In file included from main.c:2:
/usr/include/string.h:149:39: note: expected ‘char * restrict’ but argument is of type ‘int’
  149 | extern char *strcat (char *__restrict __dest, const char *__restrict __src)
      |                      ~~~~~~~~~~~~~~~~~^~~~~~
main.c:7:15: warning: passing argument 2 of ‘strcat’ makes pointer from integer without a cast [-Wint-conversion]
    7 |     strcat(x, y);
      |               ^
      |               |
      |               int
In file included from main.c:2:
/usr/include/string.h:149:70: note: expected ‘const char * restrict’ but argument is of type ‘int’
  149 | extern char *strcat (char *__restrict __dest, const char *__restrict __src)
      | 
广告