字符串中的assert和stract

news2024/11/18 11:41:09

assert:函数原型是:void assert( int expression );其作用是现计算表达式 expression ,如果其值为(即为0),那么它先 stderr 打印一条出信息,然后通过调用 abort 来终止程序运行。使用assert 的缺点是,频繁的调用会影响程序的性能,增加额外的开销。

stract:函数原型是char *strcat(char *dest, const char *src);使用方src所指向的字符串(包括'\0')复制到dest所指向的字符串后面(删除*dest原来末尾的'\0')。要保证*dest足够长,以容纳被复制进*src中原有的字符不变,返回指向dest的指针。

assert--代码展示

#include <stdio.h>
#include <assert.h>

int main()
{
	char* mystrcpy(char *a,char *b)
	{
	assert(a != NULL && b != NULL);//调用断言
	char *result = a;//保存a的地址
	while(*b != '\0')
	{
		*a++ = *b++;//b的值给a并开始偏移
	}
	*a = '\0';//b=‘\0’后a=‘\0’
	return result;
	}
	
	char a[128] = {'\0'};
	char *b = "hello word";
	char *c = NULL;//验证断言
	
	mystrcpy(a,b);//不会断言正常输出
	puts(a);
	
	mystrcpy(c,b);//断言后会终止程序
	puts(c);
	
	return 0;
}


stract--代码展示

#include <stdio.h>
#include <assert.h>
#include <string.h>

char* mystrcat(char *dest,char *src)
{
	assert(dest != NULL && src != NULL);
	char *result = dest;
	while(*dest != '\0')
	{
		dest++;//不等于'\0'发生偏移
	}
	while(*src != '\0')
	{
		*dest++ = *src++;
	}
	*dest = '\0';
	
	return result;
}

int main()
{
	char a[128] = "hello ";
	char *b = "world";
	char *c;
	
	c = mystrcat(a,b);//将b拼接给a
	puts(c);
	
	return 0;
}

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

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

相关文章

AI口语APP的实现方法

开发AI口语应用程序涉及多个技术领域&#xff0c;包括语音识别、自然语言处理、机器学习和应用程序开发。下面是开发AI口语应用程序的一般步骤和实现方法&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作…

揭秘!新手主播如何快速出圈,看拓世法宝分分钟打造百万直播间

互联网技术的不断进步催生了信息传播方式的革新&#xff0c;直播作为其重要产物之一&#xff0c;已成为人们获取信息和娱乐消遣的重要途径。尤其在当前信息爆炸的时代背景下&#xff0c;直播以其即时性和互动性满足了人们追求实时资讯和娱乐的需求。这种蓬勃发展的直播行业也在…

openEuler 22.03 LTS 环境使用 Docker Compose 一键部署 JumpServer (all-in-one 模式)

环境回顾 上一篇文章中&#xff0c;我们讲解了 openEuler 22.03 LTS 安装 Docker CE 和 Dcoker Compose&#xff0c;部署的软件环境版本分别如下&#xff1a; OS 系统&#xff1a;openEuler 22.03 LTS(openEuler-22.03-LTS-x86_64-dvd.iso)Docker Engine&#xff1a;Docker C…

采购供应链可见性的详细介绍(数智化采购供应链系统)

信息来源&#xff1a;专业的数智化采购供应链系统整体解决方案提供商郑州信源分享&#xff01; 有这样一句话&#xff1a;“让看得见全局的人做决策。” 那么如何才能“看见”&#xff0c;并且可以看到“全局”呢&#xff1f; 答案就是采购供应链的可见性。 采购供应链可见…

【Ansible自动化运维工具 1】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

Ansible常用模块 一、Ansible1.1 简介1.2 工作原理1.3 Ansible的特性1.3.1 特性一&#xff1a;Agentless&#xff0c;即无Agent的存在1.3.2 特性二&#xff1a;幂等性 1.4 Ansible的基本组件 二、Ansible环境安装部署2.1 安装ansible2.2 查看基本信息2.3 配置远程主机清单 三、…

GIT在window是 配置SSHKEY

1、打开你得命令行工具&#xff0c;输入&#xff1a; cd ~/.ssh2、生成密钥 #设置自己的邮箱&#xff0c;随意设置 $ ssh-keygen -t rsa -C "wqzbxh163.com"#输入保存密钥的文件名字 Enter file in which to save the key (/c/Users/dahai/.ssh/id_rsa): wqzbxh剩下…

抢先体验!星河社区ERNIE Bot SDK现已支持文心大模型4.0

在2023百度世界大会上&#xff0c;百度创始人、董事长兼首席执行官李彦宏正式官宣发布文心大模型4.0&#xff01; 文心大模型 4.0&#xff0c;相比3.5版本&#xff0c;理解、生成、逻辑、记忆四大能力都有显著提升。其中理解和生成能力的提升幅度相近&#xff0c;而逻辑和记忆…

vue+golang上传微信头像

<button class"avatar" open-type"chooseAvatar" chooseavatar"onChooseAvatar"><image :src"avatarUrl" class"avatar-img"></image></button> // 微信头像修改onChooseAvatar(e) {this.uploadFil…

排查一次类加载导致的OOM

问题背景 线上收到异常告警 查看监控发现应用从启动后metaspace的占用就一直在增长&#xff0c;增长到一定限制后&#xff0c;pod重启 排查过程 metaspace存储的是类的结构信息&#xff0c;一直在增长基本上是因为类一直被重复加载&#xff0c;无法被卸载掉 给应用加上启动参…

Kubernetes学习01

一、Kubernetes是什么 Kubernetes是容器集群管理系统&#xff0c;是一个开源的平台&#xff0c;可以实现容器集群的自动化部署、自动扩缩容、维护等功能。Kubernetes是谷歌开源的容器管理集群管理系统&#xff0c;是Google多年大规模容器管理技术Borg的开源版本。 它可以在物…

MySQL查询今日、昨日、最近七天的数据

查询今日数据 sql语句&#xff1a; SELECT * FROM short_oper_log WHERE to_days(login_time) to_days(now());运行结果&#xff1a; 查询昨日数据 sql语句&#xff1a; SELECT * FROM short_oper_log WHERE DATEDIFF(login_time,NOW()) -1;运行结果&#xff1a; 额外…

【瑞幸咖啡小程序-同盾】

需要联系主页V 瑞幸咖啡小程序 登入需要过同盾滑块下单需要balckbox参数 测试 过滑块 登入发短信

一场马拉松沸腾一座城 | 2023天津马拉松亲历记

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 津津乐道的三位主播都参与了 10.15 的天津马拉松并顺利完赛&#xff0c;比赛的当天&#xff0c;半个公司…

Talk | 纽约州立宾汉姆顿大学博士生丁琰:开放环境中机器人的任务与动作规划

本期为TechBeat人工智能社区第541期线上Talk。 北京时间10月26日&#xff08;周四&#xff09;20:00&#xff0c;纽约州立宾汉姆顿大学博士生—丁琰的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “开放环境中机器人的任务与动作规划”&#xff0…

​ iOS自动混淆测试处理笔记

1 打开 ipa&#xff0c;导出ipa 路径和配置文件路径会自动填充 ​ 2 点击 开始自动混淆测试处理 自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa&#xff0c;并ipa安装到设备中运行&#xff0c;通过检测运行ipa包是否崩溃&#xff0c;来对oc类和oc方法进行筛选。…

高三高考免费试卷真题押题知识点合集

发表于安徽 温馨提示&#xff1a;有需要的真题试卷可联系本人&#xff0c;百卷内上免费资源。 感觉有用的下方三连&#xff0c;谢谢 ​ 。 免费版卷有6-60卷每卷平均4-30页 高三免费高三地理高三英语高三化学高三物理高三语文高三历史高三政治高三数学高三生物 付费版卷有1…

Linux文件描述符和打开文件之间的关系

简介 文件描述符和打开的文件之间似乎呈现出一一对应的关系。然而&#xff0c;实际并非如此。多个文件描述符指向同一打开文件&#xff0c;这既有可能&#xff0c;也属必要。这些文件描述符可在相同或不同的进程中打开。 要理解具体情况如何&#xff0c;需要查看由内核维护的…

安防监控项目---环境配置

文章目录 前言一、硬件平台二、软件平台三、开发环境配置流程总结 前言 书接上期&#xff0c;在这里呢还是需要强调一下项目环境的重要性&#xff0c;不论是在本次项目开发或者是在未来的项目开发中移植是非常重要的一项内容&#xff0c;作为开发者而言&#xff0c;需要考虑移…

拒绝拖延,从我做起!

拒绝拖延&#xff0c;从我做起&#xff01; 如果有一件事&#xff0c;对你的未来很重要&#xff0c;千万不要说等以后再做&#xff0c;这是无限拖延的借口【等有时间再做】的真正含义是&#xff0c;闲得无聊再去做&#xff0c;意味着事情即不重要也不紧急该做的重要事情不做&a…

Qt扫盲-QFontInfo理论

QFontInfo理论 一、概述二、创建QFontInfo对象 一、概述 QFontInfo类提供了关于字体的一般信息&#xff0c;包括是否是加粗、是否是斜体、字体大小、字体名称等等&#xff0c;使用也非常简单&#xff0c;其实就是一个属性查询类而已。 QFontInfo类提供了与QFont相同的访问函数…