c语言求字符串复制函数,快速上手系列-C语言之字符串处理函数(一)

C语言中常用的字符串操作函数,有比如计算字符串长度、字符串拷贝,字符串比较等这样的整体操作函数,有字符串查询函数,也有字符串转换函数等等,这里先介绍字符串整体操作函数。

630a258d88112febaf2b70663547768d.png

字符串整体操作函数

实际编程中,经常遇到对字符串整体的控制等操作,比如长度测量函数strlen(),字符串拷贝函数strcpy()/strncpy(),字符串比较函数 strcmp()/strncmp(),字符串连接函数strcat()/strncat()等,这些函数是非常有用的。

1、strlen

原型:int strlen ( const char *str )功能:返回字符串的实际长度,不含 '\0'。

a0e2d4ec662ac1cb2786cd9803958265.png

strlen之所以不包含'\0',是因为它在计数的途中遇到'\0'结束。

3c078b164ece22dab6c7366e87e29116.png

注意:sizeof与strlen不同,之前说过,sizeof不是函数,我们定义一个变量,使用sizeof可以计算所定义变量占用的内存大小,而且遇到'\0'不会结束;strlen是测字符串的实际长度。如 char buf[100] = "abc"; 则sizeof(buf)为100,而strlen(buf)为3。

2、strcpy / strncpy

1、strcpy

原型:char *strcpy( char *dest, const char *src )功能:把src所指向的以 '\0'结尾的字符串复制到dest所指向的数组中(strncpy,代表只拷贝前n个)返回值:返回参数dest字符串起始地址

d01f3fbf067d846fa96ce09bf6253842.png

需要注意的是,strcpy()遇到'\0'会结束并包含'\0'

41f1ae45926d98a6ec8e22a06174b1d8.png

2、strncpy

原型:char *strncpy(char *dest, const char *src, size_t n)功能:将参数src字符串拷贝前n个字符至参数dest所指的地址返回值:返回参数dest字符串起始地址

1302cbe6363ab49e9a6a323a0efd91f5.png

注意:strncpy()遇到'\0'结束,并且在个数n不足的情况下会用'\0'补齐。如上面例子,将数组src中的字符串拷贝4个字节到数组dest中,此时打印dest结果为“h”,那是不是说明strncpy遇到'\0'结束呢?这里还不足以说明,可能是strncpy的问题也可能是printf的问题。再看第二次输出,我们将dest中的元素分别打印出来:"h 56789",中间空有3个空字符(即'\0'),很明显,我们拷贝了4字节,但是'\0'后面的'e'和'l'并没有拷贝过去,并且后面三字节是用空字符来补全的,由此说明strncpy遇到'\0'结束,并且在个数n不足的情况下会用'\0'补齐。

strcmp/strncmp

原型: int strcmp( char *str1, char *str2 )功能:比较str1和str2的大小;返回值:相等返回0,str1大于str2返回1,str1小于str2返回-1;

61e3fcf66f0d96d9f9508259f8e9c7a0.png

对照ASICC码表可知,'A'为65,'a'为97,由于s1与s2相同,比较结果为0,s3大于s1,比较结果为1,s1小于s3,故比较结果为-1.

strcat/strncat

原型:char *strcat(char *dest, const char *src)功能:将参数src字符串拷贝到参数dest所指的字符串尾返回值:返回参数dest的字符串起始地址

aa56eedca557818ada5568e7f21fa94f.png

注意:第一个参数dest要有足够的空间来容纳要拷贝的字符串,如上面例子,s1不能写成char s1[] = "AAA";,如果这样写,s1只有4字节('A','A','A','\0'),如果将s2追加到s1末尾,由于s1空间不足会导致错误发生。

3037e058110ce50935991aa8140bcf63.png

好了,就这些吧,后续有时间来点符串查询函数和字符串转换函数。

举报/反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宇宙的第一推动力,必然存在吗?

《创造世界与逐出乐园》(The Creation of the World and the Expulsion from Paradise),乔万尼迪保罗(Giovanni di Paolo),1445年,© 公共领域文/StillJustJames译/苦山校对/光明左使原文/m…

良好编程习惯的养成

在开发中,一个良好的编程习惯对这个团队也是一种带动作用,今天在网上看到了一坨这样的代码和屎,他恶心了!再次强调 一定要注意代码的缩进和格式化!!切记!切记!! 一定 不可…

科技部:学术不端零容忍!违规人员所获职称、奖金等全部清退归零

文章 | 募格学术来源 | 科技部、科奖中心、新京报国务院新闻办公室2020年5月19日下午举行新闻发布会,介绍加快建设创新型国家、支撑引领高质量发展有关情况。科技界的学风和作风一直都是各方高度关注的问题,科技部是如何加强科技界的作风和学风建设的&am…

一文看懂台积电的研发实力

来源:内容来自「台积电财报」,谢谢。在一个月的文章《这才是台积电的真正实力》中,我们对台积电公司的实力做了一个概述。今天,我们从台积电去年底的研发投入和成果,看清这家晶圆代工巨头的真正技术实力。研发团队之组…

VS2015 IIS Express 无法启动 解决办法(转)

因为安装各种乱七八糟的软件,然后不小心把IIS Express卸载掉了,网上下载了一个IIS Express 7,安装之后本地使用VS 2015无法启动调试,F5 无法启动IIS, 再次F5调试,没有反应IIS Express没有启动。 日志记录错…

【数字孪生】数字孪生十问:分析与思考

本文来源:数字孪生DigitalTwin(北京航空航天大学,自动化科学与电气工程学院,数字孪生研究组)摘 要:当前数字孪生备受学术界、工业界、金融界以及政府部门关注。然而各界对数字孪生存在不同的理解和认识,对数字孪生相关…

图解机器学习

来源:大数据实验室机器学习这个主题已经很普遍了,每个人都在谈论它,但很少有人能够透彻地了解它。当前网络上的一些机器学习文章晦涩难懂,理论性太强,或者通篇云里雾里地介绍人工智能、数据科学的魔力以及未来的工作等…

c语言 复制文件并重命名文件,VS2010 重命名文件:源文件名和目标文件名相同 的解决方案...

想要在“”解决方案资源管理器“”中修改一个已经写好的文件的文件名,如图:在改了几次后就出现了如图的问题:然而在“解决方案资源管理器”中并没有看到,于是我打开了工程在磁盘中的位置文件夹:意外发现了真的存在了一…

Space X和NASA到底有什么关系?

来源:大柳树防务原计划北京时间5月28日发射的载人龙飞船由于天气原因推迟至北京时间5月31日发射。此次发射任务由Space X公司研发的猎鹰9号(Falcon 9)运载火箭搭载龙飞船(Crew Dragon)执行,目的是将两名NAS…

android 滚动画画,Android利用ViewPager实现可滑动放大缩小画廊效果

画廊在很多的App设计中都有,如下图所示:该例子是我没事的时候写的一个小项目,具体源码地址请访问https://www.easck.com/>使用方式布局中添加该自定义控件xmlns:tools"http://www.easck.com/tools"android:layout_width"ma…

人工智能产业发展深度报告:格局、潜力与展望

来源:华泰证券人工智能市场格局人工智能(Artificial Intelligence,AI)是利用机器学习和数据分析方法赋予机器模拟、延 申和拓展类人的智能的能力,本质上是对人类思维过程的模拟。AI 概念最早始于 1956 年 的达特茅斯会…

DVA框架统一处理所有页面的loading状态

dva 有一个管理 effects 执行的 hook,并基于此封装了 dva-loading 插件。通过这个插件,我们可以不必一遍遍地写 showLoading 和 hideLoading,当发起请求时,插件会自动设置数据里的 loading 状态为 true 或 false 。然后我们在渲染…

2022第十二届PostgreSQL中国技术大会-核心PPT资料下载

一、峰会简介 本次大会以“突破•进化•共赢 —— 安全可靠,共建与机遇”为主题,助力中国数据库基础软件可掌控、可研究、可发展、可生产,并推动数据库生态的繁荣与发展。大会为数据库从业者、数据库相关企业、数据库行业及整个IT产业带来崭…

Ionic3 环境搭建以及基础配置实现(更新中)

GitHub:https://github.com/Teloi 环境配置输入以下命令安装 Ionic (如果刚才设置了淘宝镜像源,可以使用 cnpm 代替 npm):npm install -g ionic需要注意的是,如果之前安装过 Ionic 2 的 beta 版本,需要先卸…

饶毅:脑、物理、化学、 生物、心理认知的交叉研究

本文转自公众号:脑科学学术笔记饶毅:脑、物理、化学、生物、心理认知的交叉研究陈鹏:作为一名科学家,饶老师用分子生物学和遗传学研究神经系统的发育和功能,从果蝇到人脑,从细胞到高级功能,他用…

构建城市大脑的未来标准,9个值得探索的规范

简述:50年来互联网从网状向类脑架构进化并与城市建设结合是城市大脑产生的根源。城市大脑建设是工程问题,但首先也是基础科学问题,掌握科技发展规律是发现和构建城市大脑建设标准的基础。通过总结互联网大脑模型的特征,提出了城市…

马斯克39也火星计划PPT

转自 | 软件定义世界(SDX)北京时间 5 月 31 日凌晨 3:23 ,SpaceX 最新的载人龙飞船在美国肯尼迪航天中心 39A 发射台成功发射,在全球观众的注视下,载着两名宇航员还有一只恐龙玩偶前往国际空间站。 马斯克曾…

如何进入docker容器

在使用docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。 1.使用docker attach进入Docker容器 Docker提供了attach命令来进入Docker容器。接下来…

麻省理工学院让软体机器人拥有了更好的触觉和空间感知能力

MIT来源: IEEE电气电子工程师当机器人可以抓取薯片且不会压碎它的时候,这就意味着它们越来越先进了。为了做到这一点,需要赋予它们触觉和本体感知 -- 一种对它们在空间位置中的感知。这种感觉在大多数软体机器人中是不存在的,但是…

5G时代,解锁机器视觉与千行百业的“完美关系”

来源: 脑极体在人工智能带来的诸多产业升级价值中,机器视觉毫无疑问将贡献最大的篇幅。无论是在工业、农业、服务业、金融业,基于视觉交互的智能解决方案都在智能化体系中占据了80%以上的比例。而且视觉往往还是知识图谱、语义分割、机器学习…