开发手册 欢迎您!
软件开发者资料库

C语言字符串处理函数 strcpy()和strncpy()的区别及使用

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 strcpy()和strncpy() 的区别使用方法,以及相关的示例代码。

1、strcpy()

src 所指向的字符串复制到 dest所指向的空间中,'\0'也会拷贝过去。代码如下,

#include #include /*参数dest:目的字符串首地址src:源字符首地址返回值成功:返回 dest 字符串的首地址 失败:NULL*/ int main(){   char src[40];   char dest[100];     memset(dest, '\0', sizeof(dest));   strcpy(src, "https://www.wonhero.com");   strcpy(dest, src);    printf("字符串: %s\n", dest);      return(0);}

2、strncpy()

src 指向字符串的前 n 个字符复制到 dest 所指向的空间中,是否拷贝结束符看指定 的长度是否包含'\0'。代码如下,

#include #include /*参数:dest:目的字符串首地址src:源字符首地址n:指定需要拷贝字符串个数返回值:成功:返回 dest 字符串的首地址失败:NULL*/ int main(){   char src[40];   char dest[12];     memset(dest, '\0', sizeof(dest));   strcpy(src, "https://www.wonhero.com");   strncpy(dest, src, 18);   printf("字符串: %s\n", dest);      return(0);}

3、strcpy()和strncpy()区别

strncpy是用来拷贝字符, strncpy没有拷贝串后的\0字符,而strcpy是用来拷贝字符串,即会拷贝串后的\0字符。代码如下,

#include #include int main(){     char str1[] = "www.wonhero.com";     char str2[] = "www.wonhero.com";     char *ptr1;     char *ptr2;     ptr1 = strstr( str1, "wonhero" );     ptr2 = strstr( str2, "wonhero" );     puts( ptr1 );     puts( ptr2 );     strcpy(ptr1 , "wonhero");     strncpy(ptr2 ,"wonhero", 7);     puts( ptr1 );     puts( ptr2 );     return 0;}