1、strcpy()
把 src
所指向的字符串复制到 dest
所指向的空间中,'\0'
也会拷贝过去。代码如下,
#include <stdio.h>
#include <string.h>
/*
参数
dest:目的字符串首地址
src:源字符首地址
返回值
成功:返回 dest 字符串的首地址
失败:NULL
*/
int main()
{
char src[40];
char dest[100];
memset(dest, '\0', sizeof(dest));
strcpy(src, "https://www.cjavapy.com");
strcpy(dest, src);
printf("字符串: %s\n", dest);
return(0);
}
2、strncpy()
把 src
指向字符串的前 n
个字符复制到 dest
所指向的空间中,是否拷贝结束符看指定 的长度是否包含'\0'
。代码如下,
#include <stdio.h>
#include <string.h>
/*
参数:
dest:目的字符串首地址
src:源字符首地址
n:指定需要拷贝字符串个数
返回值:
成功:返回 dest 字符串的首地址
失败:NULL
*/
int main()
{
char src[40];
char dest[12];
memset(dest, '\0', sizeof(dest));
strcpy(src, "https://www.cjavapy.com");
strncpy(dest, src, 18);
printf("字符串: %s\n", dest);
return(0);
}
3、strcpy()和strncpy()区别
strncpy
是用来拷贝字符, strncpy
没有拷贝串后的\0
字符,而strcpy
是用来拷贝字符串,即会拷贝串后的\0
字符。代码如下,
#include <string.h>
#include <stdio.h>
int main()
{
char str1[] = "www.cjavapy.com";
char str2[] = "www.cjavapy.com";
char *ptr1;
char *ptr2;
ptr1 = strstr( str1, "cjavapy" );
ptr2 = strstr( str2, "cjavapy" );
puts( ptr1 );
puts( ptr2 );
strcpy(ptr1 , "cjavapy");
strncpy(ptr2 ,"cjavapy", 7);
puts( ptr1 );
puts( ptr2 );
return 0;
}