📜  c 复制 2 个字符串\ - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:29:44.622000             🧑  作者: Mango

C语言中如何复制2个字符串?

有时我们需要在程序中将一个字符串复制到另一个字符串中。C语言中提供了一些方法来实现这一点。下面介绍常用的方法。

1. 使用strcpy()函数

strcpy()函数是C语言中常用的字符串处理函数之一。它的原型定义如下:

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

其中,dest是目标字符串,src是源字符串。strcpy()函数将src字符串复制到dest字符串中,并返回dest的指针。调用该函数的示例如下:

char str1[] = "hello, world!";
char str2[20];
strcpy(str2, str1);
printf("str2 = %s\n", str2);

其中,str1是源字符串,str2是目标字符串。调用strcpy()函数将str1复制到str2中,结果输出为:

str2 = hello, world!
2. 使用memcpy()函数

memcpy()函数是C语言中用于内存拷贝的函数,可以用来拷贝字符串。其原型定义如下:

void *memcpy(void *dest, const void *src, size_t n)

其中,dest是目标地址,src是源地址,n是拷贝字节数。调用该函数的示例如下:

char str1[] = "hello, world!";
char str2[20];
memcpy(str2, str1, strlen(str1)+1);
printf("str2 = %s\n", str2);

其中,strlen(str1)+1用于计算str1的字节数,确保拷贝整个字符串。调用memcpy()函数将str1复制到str2中,结果输出为:

str2 = hello, world!
3. 使用strncpy()函数

strncpy()函数是C语言中用于字符串复制的函数之一。其原型定义如下:

char *strncpy(char *dest, const char *src, size_t n)

其中,dest是目标字符串,src是源字符串,n是要复制的最大字符数。调用该函数的示例如下:

char str1[] = "hello, world!";
char str2[20];
strncpy(str2, str1, 5);
str2[5] = '\0';
printf("str2 = %s\n", str2);

其中,调用strncpy()函数复制前5个字符,然后手动添加字符串结束符‘\0’。调用memcpy()函数将str1复制到str2中,结果输出为:

str2 = hello

综上,以上三种方法都可以用来拷贝字符串,选择哪种方法要根据实际需求进行。另外,在使用strcpy()函数和strncpy()函数时要特别注意目标字符串的空间大小,避免出现缓冲区溢出。