内容会持续更新,有错误的地方欢迎指正,谢谢!

strcpy函数

strcpy是C语言中的一个复制字符串的库函数,手动实现如下:

char* strcpy(char* des,const char* sourse)
{if(des==NULL||sourse==NULL)return NULL;char* res=des;while((*des++=*sourse++)!='\0');return res;
}

也许你们会有疑惑:*p++,p为一个指针。
是这样的,*和++是同一优先级的运算符,所以按照右结合性来看,先执行p++,在执行*,但是请见p++的原理,p++会返回的是一个临时值,也属于右值,也就是p自增之前的值。根据下方例子能更好地理解:

#include <iostream>
using namespace std;
int main()
{int array[]={1,2,3,4};int *p=array;int res1=*p++;//【1】int res2=*++p;//【2】cout<<res1<<" "<<res2<<endl;return 0;
}

输出结果为:1 3
因为:
【1】是先执行p++,再*,所以就是先返回p去执行*,此时的p指向1,再p+1;
【2】是先执行++p,再*,所以就是先p+1,再*,但由于【1】已经让p加过一次1了,所以,此时的p指向3。

strncpy函数

strncpy的功能和strcpy相似,只是它复制时多了一个终止条件。即是未遇到原串的’\0’,如果已经复制了n个字符(n为提供的参数长度),复制同样会终止。

char* strncpy(char* dest,char* source,int n)
{if(dest==NULL||source==NULL)return NULL;char* res=dest;int i=0;while(i++<n&&(*dest++=*source++)!='\0');if(*(--dest)!='\0')*dest='\0';return res;
}

用C语言实现strcpy函数和strncpy函数相关推荐

  1. strncat 函数、strncmp 函数、strncpy 函数的使用与模拟

    1. strncat 函数. strncat 函数的介绍: strncat 函数char *strncat( char *strDest, const char *strSource, size_t ...

  2. java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用

    C语言strcpy()函数:复制字符串 头文件:#include 定义函数: char *strcpy(char *dest, const char *src); 函数说明:strcpy()会将参数s ...

  3. 这是我转贴的strcpy函数与strncpy函数的比较,其中有些错误,建议大家还是看msdn,要好的多

    strcpy与strncpy函数 (1) Memset 原型:extern void *memset(void *buffer, int c, int count); 用法:#include 功能:把 ...

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

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

  5. 随想录(用memmove函数代替strncpy函数)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 有过C语言编程的朋友应该都有过指针越界的困扰.不管越界的地方是全局地址.还是局部地址,查起来都是 ...

  6. Strcpy函数和Strncpy函数

    strcpy函数详解 strcpy函数原型 char *strcpy( char *strDestination, const char *strSource); 库函数下的strcpy #inclu ...

  7. C语言的库函数、自定义函数、嵌套函数,以及递归函数

    函数是C语言和C++很重要的部分,从它们本身有的系统的库函数,到我们自定义类型的函数.我们需要了解进一步地了解它们,掌握它们,使用它们. 目录 库函数 常见的库函数 自定义函数 1.自定义取最大值得函 ...

  8. 十一.字符串函数与内存函数

    目录 一.求字符串长度 二.长度不受限制的字符串函数 1.strcpy函数 2.strcat函数 3.strcmp函数 三.长度受限制的字符串函数 1.strncpy函数 2.strncat函数 3. ...

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

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

最新文章

  1. html5页面中鼠标悬停效果,CSS实例:非常不错的鼠标悬停TIP效果!_div+css布局教程...
  2. ajax与axios使用哪个好,ajax、axios、fetch之间的详细区别以及优缺点
  3. vi测试仪维修成功率高吗?_电工电路板检测维修无图电路板的技巧
  4. conda 分享自己的实验环境
  5. python读取第二行_使用Python操作Excel(二):读取数据表
  6. RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
  7. 商业模式新生代_业务分析基础 - 商业模式新生代01篇
  8. html-文本框和单选框
  9. mapinfo图层导入奥维_(通信技能分享)怎样把谷歌地球上画的路线图导入到测试软件中!...
  10. CentOS_7 安装MySql5.7
  11. 没有bug队——加贝——Python 41,42
  12. xutils找id报空指针异常
  13. 基于JAVA+Spring+MYSQL的码头船只出行管理系统
  14. 缓存 ASP.NET 页
  15. 学会这20条,做个聪明的人
  16. 分享一个游戏源码、游戏服务端、下载网站
  17. 华为92家核心供应商名单公布
  18. linux e1000e 网卡驱动,Ubuntu安装Intel e1000e千兆网卡
  19. 一键刷入twrp_努比亚Z17-Z17S-Z17mini 刷入MIUI10系统刷机教程
  20. 基于Java的俄罗斯方块游戏的设计与实现(含源文件)

热门文章

  1. poi导出excel,行相同数据自动合并单元格
  2. (一)Nacos注册中心集群环境搭建
  3. Linux影音专题网站
  4. 用1602液晶显示屏实现的时钟
  5. css中indent是什么意思,CSS text-indent用法及代码示例
  6. Android基础开发(1) - 打恶魔准备篇
  7. 【FFmpeg】FFmpeg5.1在ubuntu18.04上编译
  8. TransparentBlt函数的用法
  9. 新零售系统软件怎么开发?数字化新零售系统有什么优势?
  10. 线性代数 --- 个人文章索引