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

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

推荐文档