C/C++中的strncpy()函数功能为将第source串的前n个字符拷贝到destination串,原型为:

char * strncpy ( char * destination, const char * source, size_t num );

各个参数的含义显而易见,其中返回值与destination相同。

这个函数会出现三种情况:
1、num<source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的前num个字符到destination串中(不会自动为destination串加上结尾的'\0'字符);
2、num=source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的全部字符到destination串中(包括source串结尾的'\0'字符);
3、num>source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的全部字符到destination串中(包括source串结尾的'\0'字符),并且在destination串的结尾继续加上'\0'字符,直到拷贝的字符总个数等于num为止。

 

[例]

设有如下声明,注意此时source串的长度为6(包含最后的'\0'字符):

char destination[] = "********************"; // destination串为: "********************0"
cosnt char *source = "-----"; // source串为: "-----0"

情形1:如果执行如下语句:

strncpy( destination, source,  );

那么destination的前5个字符将会被'-'替换,即(以'0'表示'\0'字符):

destination串为: "-----***************0"

情形2:如果执行如下语句:

strncpy( destination, source,  );

那么destination的前6个字符将会被source的前6个字符替换,即(以'0'表示'\0'字符):

destination串为: "-----0**************0"

情形3:如果执行如下语句:

strncpy( destination, source,  );

那么destination的前6个字符将会被source的前6个字符替换,并且会在后面补4个'\0',即(以'0'表示'\0'字符):

destination串为: "-----00000**********0"

转自:https://www.cnblogs.com/unimous/archive/2012/03/05/2381151.html

strncpy()函数【转】的更多相关文章

  1. strncpy函数使用

    strncpy()函数原型:extern char *strncpy(char *dest, char *src, int n);    用法:#include <string.h>    ...

  2. strcpy函数和strncpy函数的区别

    strcpy函数和strncpy函数的原型介绍在我的另一篇文章中介绍了,见strcpy,strncpy,strlen等函数原型 strcpy:字串复制 原型:char *strcpy(char *de ...

  3. strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

    strcpy函数: char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL ...

  4. 模板:strncpy函数

    参考链接:http://baike.baidu.com/view/1207711.htm strncpy 是 C语言的函数之一,来自 C语言标准库,定义于 string.h,char *strncpy ...

  5. c语言中的 strcpy和strncpy字符串函数使用介绍

    1.strcpy函数 函数原型:char *strcpy(char *dst,char const *src)            必须保证dst字符的空间足以保存src字符,否则多余的字符仍然被复 ...

  6. C语言学习之我见-strncpy()字符串复制函数(可控制范围)

    strncpy()函数,用于两个字符串值的复制. (1)函数原型 char *strncpy(char * _Dest,const char * _Source,size_t _Count); (2) ...

  7. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  8. string.h文件中函数用法

    下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...

  9. C string 函数大全

    PS:本文包含了大部分strings函数的说明,并附带举例说明.本来想自己整理一下的,发现已经有前辈整理过了,就转了过来.修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时 ...

随机推荐

  1. leetcode简单题目两道(2)

    Problem Given an integer, write a function to determine if it is a power of three. Follow up: Could ...

  2. [转]TEC1401.Report开发技术总结 - 第三章 使用Oracle Reports开发报表-创建一个分组报表(2/4)

    本文转自:http://blog.csdn.net/deepsea_allen/article/details/53900284 第三章   创建一个分组报表 1.     建立数据模型 数据模型用于 ...

  3. [转]flash.net.Socket

    本文转自:http://designstacks.net/actionscript-3-new-capabilities http://help.adobe.com/en_US/ActionScrip ...

  4. [javaSE] 网络编程(TCP服务端客户端互访阻塞)

    客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据 客户端: 获取Socket对象,new出来,构造参数:String的ip地址,int的端口号 调用Socket对象的getOutputStr ...

  5. 四:SpringCloud-Hystrix

    八:Hystrix断路器 1. 概述 1.1 分布式系统面临的问题 ==复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败.== 上图中的请求需要调用A, P, H ...

  6. HTTP 错误500.19 - 错误代码 0x80070021

    1.错误描述 HTTP 错误500.19 -Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core  通知 Begi ...

  7. csharp:A Custom CheckedListBox with Datasource

    /// <summary> /// (eraghi) /// Custom CheckedListBox with binding facilities (Value property) ...

  8. JavaScript周报#185

    This week’s JavaScript news Read this issue on the Web | Issue Archive JavaScript Weekly Issue 185Ju ...

  9. 【转载】python实例手册

    今天写爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:ut ...

  10. MySQL5.5登陆

    通过cmd登陆 mysql -h localhost -P 3306 -u root -p123456 h后面跟的是域名或IP地址:大写的P后面跟的是端口号:u后面跟的是用户名:小写的p后面跟的是密码 ...