strcpy的相关讲解:若字符串char b[100]赋值给字符串char a[100],若strlen(a)>length(b),a字符串的’\0’后也确实赋值了,但是输出的话,遇到第一个’\0’,字符串a便输出了。
下面举个例子吧:这个例子见以下链接:
https://blog.csdn.net/okawari_richi/article/details/57411796
例如:

· 最终答案输出是 “ABC\0”;
· 为什么答案不是"ABC\0ef";

从strcpy函数的实现代码可以看出当src指针指向为‘\0’时将会停止字符串的复制,由此可以得知返回ret指针所指向的数组a内容应该是 “ABC\0ef”,也就是说实际内存数组a中的内容应该是“ABC\0ef“;但是为什么最终显示会是"ABC\0"呢,原因在于,strcpy的本身属性:即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符;

基于此种原因,但是字符串的特性是什么呢?字符串最后一个字节存放的是一个空字符——“\0”,用来表示字符串的结束。把b复制到a之后会令b的空字符把复制后的字符串隔断,所以最终printf输出只能是"ABC\0";

strcpy的三种实现方式:
第一种:

char * strcpy(char *dst,const char *src)   //[1]
{assert(dst != NULL && src != NULL);    //[2]char *ret = dst;  //[3]while ((*dst++=*src++)!='\0'); //[4]return ret;
}

第二种:

char *Strcpy(char *dst,char *src)
{assert(dst!=NULL&&src!=NULL);char *res=dst;do{*dst=*src;   dst++;src++;}while(*(dst-1)!='\0'&&*(src)!='\0');return res;
}

第三种:

char *Strcpy(char *dst,char *src)
{assert(dst!=NULL&&src!=NULL);//if(det==NULL||src==NULL)//return NULL;char *res=dst;while(*src!='\0') {*dst=*src;//不能直接用dst=*src, 这样相当于一个数值给了指针。 //除非初始化的时候,把数值给指针才行。例如:int *a=4;//赋值类型要匹配 dst++;src++;}*dst=*src;return res;
}

strcmp函数的实现方法:

int Strcmp(const char *a,const char *b)
{while(!(*a-*b)&&*a){a++;b++;}if(*a>*b)return 1;else if(*a<*b)return -1;return 0;
}

关于strcmp与strcpy函数的相关用法相关推荐

  1. strcasecmp php,PHP中strcmp()和strcasecmp()函数字符串比较用法分析

    本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法.分享给大家供大家参考,具体如下: 一.PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: s ...

  2. strlen ,strcmp,strcat,strcpy函数以及实现

    1.四种函数的简介与功能实现 2.四种函数的用C语言实现 第一节 四种函数的简介与功能实现 概述:四种函数作为库函数均存在于头文件<string.h>中,在程序编写时,我们可以通过头文件, ...

  3. strcat、strcpy、strcmp三种函数用法

    1. strcat函数 其一般形式为:strcat(字符数组1,字符数组2) strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数 ...

  4. strcmp函数和strcpy函数

    (一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i   是用于存放比 ...

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

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

  6. c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型

    实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...

  7. C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)

    参考:string.h中常用字符串操作函数说明(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等) 作者:一只青木呀 ...

  8. strlen、strcpy、strcmp、strcat函数的实现

    目录 一.strlen函数的实现 二.strcpy函数的实现 三.strcmp函数的实现 四.strcat函数的实现 五.代码示例展示 strlen.strcpy.strcmp.strcat四个函数都 ...

  9. strcmp,strcpy,strstr函数

    strcmp()函数 strcmp()函数用来比较两个字符串的大小 strcmp(字符串1,字符串2) 如果字符串1==字符串2,则函数值为0: 如果字符串1>字符串2,则函数值为一个正整数: ...

最新文章

  1. Pycharm运行时找不到文件问题
  2. python自动点击脚本_[Python] 【Python3】教你写页游自动化Python脚本 3.取色,大漠识别和后台点击...
  3. WCF中绑定的简单介绍
  4. 分支结构程序案例c语言,C语言学习之三——分支结构程序
  5. camunda 流程执行追踪_流程引擎为什么选 Camunda
  6. Deep Learning快速学习方法
  7. vue 获取安卓原生方法_H5-vue与原生Android、ios交互获取相册图片
  8. 好程序员大数据入门学习之Hadoop技术优缺点 1
  9. AIDL的简单使用和注意事项
  10. 【新功能】摹客Figma插件功能升级!标注切图效率加倍
  11. 学习计算机基础有什么推荐的书和视频?
  12. 什么是域名(Domain Name ) ?
  13. 论文笔记: 多标签学习 PML-NI 算法
  14. win10装win7装win7
  15. win10卸载git_提高win10 系统 git 速度的方法
  16. typename的两个意思
  17. MFC错误0xc000007b 应用程序无法正常启动 的一种原因
  18. APICS与AX的Master Planning(三)---Firm Planned Orders已确认计划订单
  19. 通达信五点多组预测主图指标公式源码实测
  20. 华为鸿蒙系统动画过滤,华为鸿蒙系统细节曝光 UI重绘动画多/系统简介更流畅...

热门文章

  1. linux桌面融合,教育桌面云-融合版
  2. 华为披露3G机密:WCDMA专利可制衡跨国巨头
  3. Android Arcgis 优化--------道格拉斯-普克抽稀算法
  4. PLC串行通信程序怎么编写?
  5. 关于想要MacBook升级的一些事
  6. decaf-platform - plugin_sample.wiki
  7. AI智能网关如何应用于智慧安监?
  8. 数据从excel导入ORACLE的4个方法
  9. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  10. Flink SQL - OVER windows‘ ordering in stream mode must be defined on a time attribute.