【FROM MSDN && 百科】

原型:char * strncpy(char *dest, char *src, size_t n);

#include<string.h>

功能:将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样只有遇到NULL才停止复制,而是多了一个条件停止,就是说如果复制到第n个字符还未遇到NULL,也一样停止),返回指向dest的指针。

The strncpy function copies the initialcount characters ofstrSource tostrDest and returnsstrDest. Ifcount is less than or equal to the length ofstrSource, a null character is not appended automatically to the copied string. If count is greater than the length ofstrSource, the destination string is padded with null characters up to lengthcount. The behavior ofstrncpy is undefined if the source and destination strings overlap.

总结:strcpy
如果源长>目标长,则将源长中等于目标长的字符拷贝到目标字符串
如果源长<目标长,则源长全部拷贝到目标字符串,不包括'\0'

这两句话不理解?

 char *p="how are you ?";char name[20]="ABCDEFGHIJKLMNOPQRS";printf("%s\n",p);printf("%s\n",name);strcpy(name,p);printf("%s\n",name);

strncpy
如果指定长>源长,则将源长全部拷贝到目标长,自动加上'\0'
如果指定长<源长,则将源长中按指定长度拷贝到目标字符串,不包括'\0'
如果指定长>目标长,error happen!

DEMO:实现自己的strncpy函数

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <assert.h>
char *mystrncpy(char *dest,const char *src,int n);
int main(void)
{char a[20]="how";char b[20]="what";mystrncpy(a,b,8);  //mystrncpy(a,b,4)这两种情况来高度程序printf("%s\n",a);getch();return 0;
}
/*
1.当要拷贝的字符个数(size_t n)小于或等于strSour长度, strDest的最后不会加\0
2.当要拷贝的字符个数(size_t n)大于strSour长度,strDest最后会自动追加一个\0
*/
char *mystrncpy(char *dest,const char *src,int n)
{char *strDest=dest;assert((dest!=NULL)&&(src!=NULL));while( n &&(*dest++=*src++)!='\0'){n--;}if (n){while(--n){*dest++='\0';}}return strDest;
}

C语言之strncpy函数相关推荐

  1. C语言实现strncpy函数

    strncpy 函数 char *strncpy( char *strDest, const char *strSource, size_t count ) 一. 函数简介 strDest:目的字符串 ...

  2. 【C语言】strncpy函数和strncpy_s函数的不同!关于末尾追加\0

    今天在微软家的strncpy_s函数上栽了跟头,记录一下 char *strncpy(char *strDest, const char *strSource, size_t count ); err ...

  3. c语言字符串提取第二个字符,c语言如何复制字符串(取前n个字符)strncpy()函数的应用实例...

    c语言如何复制字符串(取前n个字符)strncpy()函数的应用实例.函数需引入的头文件:#include 定义strncpy()函数:char * strncpy(char *dest, const ...

  4. c语言 字符串 strncpy,详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用 strcpy 和strcnpy函数--字符串复制函数. 1.strcpy函数 函数原型:char *strcpy(char *dst,cha ...

  5. c语言拷贝特定个数的字符串,C语言strncpy函数

    C语言strncpy函数教程 strncpy 是一种 C 语言的标准库函数,在拷贝时,我们可以指定最多复制 n 个字符.当源字符串的长度小于 n 时,目的字符串的剩余部分将用空字节填充. strncp ...

  6. c语言strncpy函数定义,strncpy (Strings) – C 中文开发手册

    C 语言中文开发手册 strncpy (Strings) - C 中文开发手册 在头文件中定义 ​ ​ ​ (1) ​ char * strncpy(char * dest,const char * ...

  7. C语言strncpy函数详解及其模拟实现

    char * strncpy ( char * destination, const char * source, size_t num ); strncpy函数是C语言中的内置函数之一,相较于str ...

  8. 用C语言实现strcpy函数和strncpy函数

    内容会持续更新,有错误的地方欢迎指正,谢谢! strcpy函数 strcpy是C语言中的一个复制字符串的库函数,手动实现如下: char* strcpy(char* des,const char* s ...

  9. C语言strcpy、strncpy函数是否会复制‘\0‘结束符

    1.首先看看strcpy函数的原型 /* strcpy函数原型*/ char *strcpy(char *est,const char *src) {assert((dest!=NULL)&& ...

最新文章

  1. 爬虫之requests模块cookieJar对象转换为cookies字典的方法
  2. 《电子商务法》实施倒计时,这些执行细则需注意!
  3. POPUP_TO_CONFIRM_LOSS_OF_DATA
  4. abap 生成流水号每天从1开始_条码软件如何制作循环流水号
  5. 2013/12/25
  6. 校验json格式_不来学一下SpringBoot统一参数校验?
  7. python机器学习库xgboost使用调参
  8. 华为四核处理器K3V2
  9. java ajax教程_JAVA AJAX教程第三章—AJAX详细讲解
  10. android系统wifi控制风扇,可手机APP控制的机箱风扇,光污染新玩法
  11. 请详细说下你对 vue 生命周期的理解?
  12. 计算机应用基础自学手写笔记,计算机应用基础第一章笔记.docx
  13. 经典语录-2014330
  14. redis常用命令总结(慎入)
  15. 5个超好用的自媒体网站,免费用
  16. VMware虚拟机不能全屏
  17. 电脑端口被占用怎么解决?
  18. 什么灯适合学生在暑假使用?照度国AA级的舒适护眼灯
  19. 关于carsim2016破解问题
  20. 【教学类-06-03】20220327 X以内数字分合题(分)及生成word 打印docx纸(方法一)(Python VS )

热门文章

  1. 前端开发中HTML 规范
  2. 苹果:第三方安装软件或导致严重隐私、安全风险
  3. 十个英语口语学习网站
  4. 计算机选择位置不能选桌面,win7电脑桌面的图标无法拖动位置了怎么办?
  5. 数据库——《对数据进行排序》
  6. Keil环境添加STC系列单片机
  7. 【Pandas分组聚合】 groupby()、agg() 方法的使用
  8. 工具论-科学是实用工具
  9. syscall(SyS_gettid)是什么
  10. gamit错误提示:PCN-code missing for receiver type TRMR12 in rcvant.dat