关于strcmp与strcpy函数的相关用法
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函数的相关用法相关推荐
- strcasecmp php,PHP中strcmp()和strcasecmp()函数字符串比较用法分析
本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法.分享给大家供大家参考,具体如下: 一.PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: s ...
- strlen ,strcmp,strcat,strcpy函数以及实现
1.四种函数的简介与功能实现 2.四种函数的用C语言实现 第一节 四种函数的简介与功能实现 概述:四种函数作为库函数均存在于头文件<string.h>中,在程序编写时,我们可以通过头文件, ...
- strcat、strcpy、strcmp三种函数用法
1. strcat函数 其一般形式为:strcat(字符数组1,字符数组2) strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数 ...
- strcmp函数和strcpy函数
(一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i 是用于存放比 ...
- strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
strcpy函数: char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL ...
- c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型
实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...
- C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)
参考:string.h中常用字符串操作函数说明(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等) 作者:一只青木呀 ...
- strlen、strcpy、strcmp、strcat函数的实现
目录 一.strlen函数的实现 二.strcpy函数的实现 三.strcmp函数的实现 四.strcat函数的实现 五.代码示例展示 strlen.strcpy.strcmp.strcat四个函数都 ...
- strcmp,strcpy,strstr函数
strcmp()函数 strcmp()函数用来比较两个字符串的大小 strcmp(字符串1,字符串2) 如果字符串1==字符串2,则函数值为0: 如果字符串1>字符串2,则函数值为一个正整数: ...
最新文章
- Pycharm运行时找不到文件问题
- python自动点击脚本_[Python] 【Python3】教你写页游自动化Python脚本 3.取色,大漠识别和后台点击...
- WCF中绑定的简单介绍
- 分支结构程序案例c语言,C语言学习之三——分支结构程序
- camunda 流程执行追踪_流程引擎为什么选 Camunda
- Deep Learning快速学习方法
- vue 获取安卓原生方法_H5-vue与原生Android、ios交互获取相册图片
- 好程序员大数据入门学习之Hadoop技术优缺点 1
- AIDL的简单使用和注意事项
- 【新功能】摹客Figma插件功能升级!标注切图效率加倍
- 学习计算机基础有什么推荐的书和视频?
- 什么是域名(Domain Name ) ?
- 论文笔记: 多标签学习 PML-NI 算法
- win10装win7装win7
- win10卸载git_提高win10 系统 git 速度的方法
- typename的两个意思
- MFC错误0xc000007b 应用程序无法正常启动 的一种原因
- APICS与AX的Master Planning(三)---Firm Planned Orders已确认计划订单
- 通达信五点多组预测主图指标公式源码实测
- 华为鸿蒙系统动画过滤,华为鸿蒙系统细节曝光 UI重绘动画多/系统简介更流畅...
热门文章
- linux桌面融合,教育桌面云-融合版
- 华为披露3G机密:WCDMA专利可制衡跨国巨头
- Android Arcgis 优化--------道格拉斯-普克抽稀算法
- PLC串行通信程序怎么编写?
- 关于想要MacBook升级的一些事
- decaf-platform - plugin_sample.wiki
- AI智能网关如何应用于智慧安监?
- 数据从excel导入ORACLE的4个方法
- 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
- Flink SQL - OVER windows‘ ordering in stream mode must be defined on a time attribute.