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…

c语言编程安全队列,C语言编程队列的实现

queue.c功能函数:#include "queue.h"static void CopyToNode(Item item,Node *pn){pn->item item;}static void CopyToItem(Node *pn, Item *pi){*pi pn->item;}/* 把队列初始化为空,就是设置尾指针为NULL并设置项数(items成员)为0 */…

良好编程习惯的养成

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

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

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

c语言课程设计模块结构图,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*************************************************查询函数**********************************************/void search(){int flag,j,x;char w[20];FILE *fp;char v[20];printf("(1)按作者\n");printf("(2)按…

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

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

c语言中异或指令,C语言总结之异或运算的一些特性及巧妙应用

原标题:C语言总结之异或运算的一些特性及巧妙应用1.一个数和自己做异或的结果是0。如果需要一个常数0,x86平台的编译器可能会生成这样的指令:xorl %eax, %eax。不管eax寄存器里的值原来是多少,做异或运算都能得到0&…

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

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

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

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

c语言xc比较大小写,XCTestAPI文档.docx

XCTestAPI文档XCTest准备工作对于新项目,在新建项目界面勾选上UI Tests;对于旧项目,在项目界面点击菜单栏中的FileNewTarget…iOSTestiOS UITesting Bundle。sleepForTimeInterval:线程休眠[NSTread sleepForTimeInterval:1.0f];也可以使用sl…

C语言编写一个备份文件,2014年3月二级C语言上机题库备份.doc

全国计算机等级考试二级C语言上机题库第一套程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划…

图解机器学习

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

BZOJ 4819: [Sdoi2017]新生舞会

二次联通门 : BZOJ 4819: [Sdoi2017]新生舞会 /*BZOJ 4819: [Sdoi2017]新生舞会二分 01分数规划 最小费用流二分出一个答案费用流检验*/ #include <cstdio> #include <iostream> #include <queue> #include <cstring>const int BUF 12312312; char …

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

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

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

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

菜鸟的Xamarin.Forms前行之路——绪言

作者入门时间不是很久,差不多一年,期间自学的东西比较杂乱,到目前为止,编程方面的知识比较薄弱.之所以做这个系列,也只是因为做了两个月的Xamarin.Forms方面的东西,由于资料和自身实力的原因,过程走的比较艰难,但所幸的是也解决了部分的问题,积累了一些经验.期望通过这个系列,和…

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

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

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

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

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

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

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

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