字符串中的assert和strcat

news2024/9/30 19:43:12

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

strcat:函数原型是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;
}

10700442ebe74aedb451877f9f5a723a.png


strcat--代码展示

#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;
}

5e5c84252d184aca8b77f52a5ea46eb9.png

 

 

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

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

相关文章

GoLong的学习之路(十二)语法之标准库 flag的使用

上回书说到&#xff0c;fmt的标准库的一些常用的使用函数。这次说flag的使用&#xff0c;以下这些库要去做了解。不然GG&#xff0c;Go语言内置的flag包实现了命令行参数的解析&#xff0c;flag包使得开发命令行工具更为简单。 文章目录 os.Argsflag包flag.Type()flag.TypeVar(…

AI口语APP的实现

AI口语应用程序是一种借助人工智能技术&#xff0c;旨在帮助用户提高口语能力、练习语言技能以及进行交流和学习语言的应用程序。这类应用通常提供以下主要功能&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交…

Ansys Speos | SPEOS 在HUD杂光分析中的应用

概述 随着汽车智能座舱的普及&#xff0c;HUD的装车率也随之增加&#xff0c;未来也可能会成为车内座舱的标配。而HUD是一个由光学&#xff0c;机械&#xff0c;电子&#xff0c;软件组成的复杂的高科技产品&#xff0c;其所在的汽车座舱是很复杂的环境。我们需要对HUD进行诸如…

2023年05月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 可以对Python代码进行多行注释的是&#xff1f;&#xff08; &#xff09; A: # B: " " C: ‘’’ ‘’’…

Java关于实例对象调用静态变量和静态方法问题

直接去看原文 原文链接:Java关于实例对象调用静态变量和静态方法问题_java对象可以调用static方法吗_骑个小蜗牛的博客-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------- 实例…

2.13每日一题(根号下的定积分及去绝对值的定积分)

1、用三角函数的公式化1及二倍角公式将sinx化掉&#xff0c;构成完全平方公式 2、去根号&#xff0c;注意去根号要加绝对值&#xff0c; 3、通过区间比较sinx、cosx的大小去绝对值

vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。

vscode 保存 "index.tsx"失败: 权限不足。选择 “以超级用户身份重试” 以超级用户身份重试。 操作&#xff1a;mac在文件夹中创建文件&#xff0c;sudo 创建umiJs项目 解决&#xff1a;修改文件夹权限 右键文件夹

浮点数的表示与运算

一、浮点数的表示 1、规格化浮点数的特点 2、浮点数表示

C#上位机序列10: 批量读写+点对点更新+数据类型处理

一、源码结构 二、运行效果 三、源码解析 PLC批量读写点对点更新数据类型处理 优点&#xff1a;根据数据类型&#xff0c;判定监听的地址范围&#xff08;40120_int 监听两个word&#xff1a;40120 40121&#xff1b;40130_long 监听四个word&#xff1a;40130 40131 40132 4…

运营商光纤资源管理:管理工具的力量

随着通信信息化水平发展&#xff0c;光纤资源已成为现代通信网络的核心要素之一。然而&#xff0c;管理却面临诸多挑战&#xff0c;尤其对于电信运营商而言&#xff0c;面对庞大而复杂的光纤网络资源&#xff0c;怎样做到既不浪费现有资源&#xff0c;又能满足未来业务需求&…

18亿欧元大动作,法国瞄准实现量子飞跃

Quobly 正在开发一种容错量子处理器&#xff08;图片来源&#xff1a;网络&#xff09; 2021年1月&#xff0c;马克龙总统宣布了法国国家量子计算计划&#xff0c;并将为该技术投入高达18亿欧元。 “量子战略至关重要&#xff0c;”马克龙在量子研究中心巴黎萨克雷大学宣布该…

概念解析 | 功率放大器与低噪声放大器:一场关于信号放大的对比

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:功率放大器(PA)与低噪声放大器(LNA)。 功率放大器与低噪声放大器:一场关于信号放大的对比 一、背景介绍 在现代的通信系统中,功率放大器 (Power Amplifier, PA)与低噪声放…

集卡实习总结

规则控制面板 &#xff08;1&#xff09;什么是低代码&#xff1f; 低代码 是借助低代码工具的情况下&#xff0c;开发人员编写少量代码快速开发出企业级应用系统&#xff0c;并帮助企业团队进行数字化转型。低码开发平台借助一整套功能组件&#xff0c;功能分类包括&#xff…

如何查看员工电脑操作记录

作为企业管理者&#xff0c;查看员工电脑操作记录可以帮助了解员工的工作情况和电脑使用情况&#xff0c;以便更好地进行管理。以下是一些查看员工电脑操作记录的方法&#xff1a; 一、电脑监控软件系统 这些软件系统可以实时监控员工电脑的操作情况&#xff0c;包括网页浏览、…

DeOldify 接口化改造 集成 Flask

类似的图片修复项目 GFPGAN 的改造见我另一篇文 https://blog.csdn.net/weixin_43074462/article/details/132497146 DeOldify 是一款开源软件&#xff0c;用于给黑白照片或视频上色&#xff0c;效果还不错。 安装部署教程请参考别的文章&#xff0c;本文基于你给项目跑通&…

极米科技H6 Pro 4K、H6 4K高亮定焦版——开启家用投影4K普及时代

智能投影产业经过几年发展&#xff0c;市场规模正在快速扩大。洛图数据显示&#xff0c;预计今年中国投影出货量有望超700万台&#xff0c;2027年达950万台&#xff0c;可见智能投影产业规模将逐渐壮大&#xff0c;未来可期。2023年&#xff0c;投影行业呈现出全新面貌&#xf…

Linux部署Redis Cluster高可用集群(附带集群节点添加删除以及槽位分配操作详解)

目录 一、前言二、下载安装Redis2.1、选择需要安装的Redis版本2.2、下载并解压Redis2.3、编译安装Redis 三、部署Redis Cluster高可用集群3.1、准备配置文件3.2、启动Redis服务3.3、创建Redis集群3.4、查看集群关系3.5、连接集群Redis进行数据读写以及重定向测试3.6、故障转移和…

数据库设计原则

一、前言 在平时的web系统开发中&#xff0c;数据库是必不可少的一部分&#xff0c;没有了数据库&#xff0c;程序处理的数据就不知如何更好安放。然而数据库没有很好的设计&#xff0c;使用起来也是很不好用的。本节就介绍一下数据库得到基础知识和设计原则。 二、为什么需要…

NEFU离散数学实验3-递推方程

相关概念 递推方程是指一种递归定义&#xff0c;它将问题拆分成更小的子问题&#xff0c;并使用这些子问题的解来计算原问题的解。离散数学中&#xff0c;递推方程通常用于描述数列、组合问题等。 以下是一些递推方程相关的概念和公式&#xff1a; 1. 递推公式&#xff1a;递推…

【嵌入式开发 Linux 常用命令系列 9 -- linux系统终端命令提示符设置(PS1)】

文章目录 Linux PS1 介绍PS1 纯文本和特殊的转义序列PS1 颜色设置 Linux PS1 介绍 在Linux中&#xff0c;PS1&#xff08;Prompt String 1&#xff09;是一个环境变量&#xff0c;用来定义shell命令提示符的显示内容和格式。当你在终端中输入命令时&#xff0c;PS1定义的就是那…