字符串函数的模拟实现(部分字符串函数)

 strlen函数模拟

size_t my_strlen(const char* arr) {int count = 0;while(*arr){arr++;count++;}return count;}
int main()
{
printf(	" %zd", my_strlen("adsshadsa"));}//模拟实现strlen函数

 

strcpy函数模拟 

char* my_strcpy(char* arr1, const char* arr2){char* arr3 = arr1;while (*arr1 = *arr2){arr1++;arr2++;}return   arr3;}int main(){char arr1[] = "adsddassd";my_strcpy(arr1, "sahdhd");printf("%s", arr1);
}//模拟strcpy函数

 模拟strcmp函数

int my_strcmp(const char* arr1, const char* arr2)
{while (*arr1 == *arr2) {if (!*arr1)return 0;arr1++;arr2++;}return *arr1 - *arr2;
}
int main()
{int ret = my_strcmp("dasdsa", "dasdst");printf("%d", ret);}//模拟strcmp函数

 

模拟strcat函数 

	char* my_strcat(char* arr1, const char* arr2){char* arr3 = arr1;while (*arr1)arr1++;while (*arr1 = *arr2){arr1++;arr2++;}return   arr3;}int main(){char arr1[30] = "adsddassd";my_strcat(arr1, "sahdhd");printf("%s", arr1);
}//模拟strcpy函数

 

长度限制字符串函数就不模拟了 

这里我们学的长度限制字符串函数就不模拟了,如strncat,strncpy,strncmp。其代码内容相比原本无限制的就多了几个限制条件,这里就不模拟了 

 strstr模拟

char* my_strstr(const char* arr1, const char* arr2)
{if (!*arr2)return  (char*)arr1;const char* arr3;const char* arr4;while (*arr1){arr3 = arr1;arr4 = arr2;while (*arr3 == *arr4){arr3++;arr4++;if (*arr4 == 0)return (char*)arr1;}arr1++;}return NULL;
}int main()
{
char* ret=	my_strstr("adsdasdf", "das");
printf("%s", ret);}//模拟strstr函数

 

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

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

相关文章

在Windows上使用 Python

本文档旨在概述在 Microsoft Windows 上使用 Python 时应了解的特定于 Windows 的行为。 与大多数UNIX系统和服务不同,Windows系统没有预安装Python。多年来CPython 团队已经编译了每一个 发行版 的Windows安装程序(MSI 包),已便…

C++——C++11(2)

我在我的C异常博客中曾提到,对于异常的处理经常会导致内存泄漏问题, 一种解决方法是异常的重新抛出,还有一种就是RAII,那么RAII的思想体现 在C中就是智能指针,所以接下来我将简单的介绍,什么是RAII&#xf…

计算机网络 网络层下 | IPv6 路由选择协议,P多播,虚拟专用网络VPN,MPLS多协议标签

文章目录 5 IPv65.1 组成5.2 IPv6地址5.3 从IPv4向IPv6过渡5.3.1 双协议栈5.3.2 隧道技术 6 因特网的路由选择协议6.1 内部网关协议RIP6.2 内部网关协议 OSPF基本特点 6.3 外部网关协议 BGP6.3.1 路由选择 6.4 路由器组成6.4.1 基本了解6.4.2 结构 7 IP多播7.1 硬件多播7.2 IP多…

Inscribe:应用非定向资产交易协议 布局巨大铭文赛道

随着比特币出现了一定的回调,铭文市场也出现了50%以上的跌幅,但是从市场的长期发展来看,铭文市场空间巨大,仍然是未来千亿级的蓝海市场,那么这样的回调阶段正式各类优质项目深度BUILD 扩展自己产品生态提升竞争力的关键…

还在用QQ拼音输入法吗?赶快卸载吧~!

最近总觉得我的C盘在莫名其妙的减少。之前的电脑C盘只有240G,所以我很在意C盘空间。但是,我发现买了新电脑,C盘空间也在莫名其妙减少。 随挨个文件夹检查。最后发现,QQ拼音的 dict 文件夹很大,居然有 30G多G。 30多~…

如何快速优化大数据量订单表

场景 本篇分享以前在广州一家互联网公司工作时遇到的状况及解决方案,这家公司有一个项目是SOA的架构,这个架构那几年是很流行的,哪怕是现在依然认为这个理念在当时比较先进。 当时的项目背景大概是这样,这家公司用的是某软提供的方案,项目已经运行3年多,整体稳定。 数据…

mysql mha高可用

一、前言 在原本的一主两从数据库架构中,是没有高可用功能的,当主库挂了时不会自动将剩下的从从升级为主库,只能等待主库恢复才能使用,或者手动切换,但是手动切换后需要更改后端服务中的数据库地址信息,在此…

架构设计到底是什么?

文章目录 架构设计有哪些内容?架构原理与技术认知分布式技术原理与设计中间件常用组件的原理和设计问题数据库原理与设计问题分布式缓存原理与设计问题互联网高性能高可用设计问题 技术认知架构分析问题分析能力边界 架构设计,是中高级研发工程师逃不开的…

windows远程桌面怎么开启?

文章目录 如下三种开启方式,任选一即可方式1.在系统属性中开启远程桌面方式2.通过系统设置开启远程桌面方式3.注册表编辑器开启远程桌面使用远程桌面 如下三种开启方式,任选一即可 配合 组网工具或者内网穿透 超级爽 局域网其他pc如何访问宿主机虚拟机IP…

@RequestParam、@PathVariable、@RequestBody、@RequestAttribute详解

一、RequestParam注解 作用:用于将指定的请求参数赋值给方法中的形参。 属性: 1)value:请求参数名(必须配置) 2)required:是否必需,默认为 true,即请求中必须…

Elasticsearch:什么是文本分类?

文本分类定义 - text classification 文本分类是一种机器学习,它将文本文档或句子分类为预定义的类或类别。 它分析文本的内容和含义,然后使用文本标签为其分配最合适的标签。 文本分类的实际应用包括情绪分析(确定评论中的正面或负面情绪&…

GLTF/GLB模型在线预览、编辑、动画查看以及材质修改

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 GLTF在线编辑器提供了一个内置的模型查看器,可以加载和预…

Linux docker安装nacos

1:首先下载安装docker,这里不做描述,可以自行百度安装。 2:通过docker下载nacos, docker pull nacos/nacos-server:latest3:搭建临时nacos容器,此步骤的目的是为了获取nacos的配置文件和日志 …

Ubuntu 常用命令之 awk 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。在Ubuntu系统下,AWK命令主要用于数据处理和生成报告。 AWK命令的参数主要有 -F:指定输入文件分隔符,FS变量就是指定输入字…

Salesforce回归后:谁在成为中国市场上的CRM首选?

怎样的C RM才是在中国这片土地上的最佳答案? 在Salesforce重新回归的今天,其所面临的产品、生态、技术、服务、数据等问题也恰是中国本土的CRM厂商被多年磨练和审视的问题。 在如Salesforce等国外软件进军中国市场的同时,中国本土的CRM厂商…

深度学习14—注意力机制与自注意力机制

注:以下均为个人学习笔记,发布只为方便学习阅读,若觉侵权,请联系删除!! 1.李沐老师课堂学习理解笔记 1.1 随意线索和不随意线索 1.2 注意力机制 通过注意力池化层来有偏向性的选择某些输入。 1.3 注意力…

Linux 音视频SDK开发实践

一、兼容性适配处理 为什么需要兼容处理? 1、c兼容处理 主要有ABI兼容性问题,不同ubuntu系统依赖的ABI版本如下: ubuntu 18.04ubuntu 16.04ubuntu 14.04g7.55.44.8stdc版本libstdc.so.6.0.25libstdc.so.6.0.21libstdc.so.6.0.19GLIBCXXG…

BearPi Std 板从入门到放弃 - 后天篇(3)(ESP8266透传点灯)

简介 电脑搭建一个TCP Server, ESP8266 串口设置好透传模式, 再由TCP Server发送指令控制灯的亮灭; 开灯指令: led_on回车 ; 关灯指令: led_off回车 主芯片: STM32L431RCT6 LED : PC13 \ 推挽输出即可 \ 高电平点亮 串口: Usart1 / LPUART E…

指针---你真的会使用指针吗?

指针作为C语言中的一个部分,可以说指针是C语言的核心,那么它的难度肯定是不言而喻的,总是能把人给绕得找不到方向。 今天我就好好的说一说指针这个东西。 1、何为指针? 指针是C语言中用来存放地址的一个变量类型。我们可以将指针看…

Uniapp + Vue3 + Pinia + Vant3 框架搭建

现在越来越多项目都偏向于Vue3开发&#xff0c;想着uniapp搭配Vue3试试效果怎么样&#xff0c;接下来就是详细操作步骤。 初始化Uniapp Vue3项目 App.vue setup语法 <script setup>import {onLaunch,onShow,onHide} from dcloudio/uni-apponLaunch(() > {console.l…