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; }