C语言 strcpy()函数

  • Post category:C

C语言 strcpy()函数

1. 功能说明

strcpy()函数是标准C库中的字符串函数,它的原型定义在头文件内。strcpy()函数的功能是将源字符串复制到目标字符串所在的地址上,包括末尾的’\0’字符。

2. 函数原型

char *strcpy(char *dest, const char *src);

参数说明:

  • dest:目标字符串的地址,用于存放复制后的字符串。
  • src:源字符串的地址,被复制的字符串。

返回值:

  • 返回复制后目标字符串的地址,即dest。

3. 函数使用

示例一

下面是一个简单的例子,使用strcpy()函数将一个字符串复制到另一个字符串中:

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

int main () {
   char src[40];
   char dest[100];

   strcpy(src, "Hello World");
   strcpy(dest, src);

   printf("源字符串src:%s\n", src);
   printf("目标字符串dest:%s\n", dest);

   return 0;
}

输出结果为:

源字符串src:Hello World
目标字符串dest:Hello World

在上面的例子中,我们将字符串”Hello World”从src字符串复制到dest字符串中,并输出两个字符串的值。

示例二

下面再给出一个稍微复杂一些的例子,使用strcpy()函数和动态内存分配实现字符串拼接:

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

int main () {
   char *str1, *str2, *result;
   int len1, len2;

   str1 = (char *)malloc(15);
   str2 = (char *)malloc(15);

   strcpy(str1, "Hello");
   strcpy(str2, " World");

   len1 = strlen(str1);
   len2 = strlen(str2);

   result = (char *)malloc(len1 + len2 + 1);
   strcat(result, str1);
   strcat(result, str2);

   printf("字符串str1:%s\n", str1);
   printf("字符串str2:%s\n", str2);
   printf("字符串result:%s\n", result);

   return 0;
}

输出结果为:

字符串str1:Hello
字符串str2: World
字符串result:Hello World

在上面的例子中,我们创建两个字符串变量str1和str2并使用malloc()函数动态分配内存给它们。然后,使用strcpy()函数将字符串”Hello”和” World”分别复制到str1和str2中,并获取它们的长度。接着,创建一个新的字符串变量result,使用malloc()函数动态分配内存来存储两个字符串的拼接结果,并使用strcat()函数将两个字符串连接起来。最后输出三个字符串变量。

4. 总结

C语言strcpy()函数的作用是将源字符串复制到目标字符串所在的地址上,以及添加字符串结束标志符’\0’。在使用strcpy()函数时需要注意目标字符串必须有足够大小空间以存储被复制的源字符串。同时也要注意复制的字符串尽量要使用字符指针的形式传入,避免内存拷贝的开销。