Mystrcmp与指针的特点

news/2024/9/20 21:35:47
/******************************************************************************************************* @file name:		  :Mystrcmp* @brief  		      :模拟strcmp* @author 		      :wvjnuhhail@126.com* @date 			  :2024/06/24* @version 1.0 	  :V1.0* @property 		  :暂无* @note   		      :None* CopyRight (c)  2023-2024   wvjnuhhail@126.com   All Right Reseverd******************************************************************************************************/#include <stdio.h>
#define STR_LEN 50int Strcmp(char *s1, char *s2);
int Strcmp(char *s1, char *s2) // 注意如果s1和s2不相同则返回第一个不同的字符差  s2-s1
{while (1){if (*s1 != *s2) // 只能判断相不相等{return *s2 - *s1; // 返回不同的字符差}s1++; // adfwas2++; // adfwaif (*s1 == '\0' || *s2 == '\0') // 判断是否到了字符串的末尾{break;}}return *s2 - *s1; // 这行代码是上面的循环 循环到了字符串的末尾
}int My_Strcmp_While(char *str_1, char *str_2)
{// abc// abcdwhile (*str_1 != '\0' && *str_2 != '\0'){/* if(*(str_1++) != *(str_2++)){return *(str_1-1) - *(str_2-1); //}*/int reslut = *(str_1++) - *(str_2++);if (reslut != 0){return reslut;}}// 第一次while的小括号里面判断 f 和 f// 第一次进入while循环判断的是  f 和 f// 第二次while小括号里面判断的是 s 和 g// 第二次进入while循环判断的是  s 和 greturn *str_1 - *str_2;//   0  -   a
}int My_Strcmp(char *str_1, char *str_2)
{for (; *(str_1) != '\0' && *(str_2) != '\0'; str_1++, str_2++){if (*str_1 != *str_2){return *str_1 - *str_2;}}return *str_1 - *str_2;
}int main()
{// 定义两个数组,存放字符串,后面封装一个函数用来比较他们相不相同char s1[STR_LEN] = "fdajsfgjdswavfdas";char s2[STR_LEN] = "fdajsfgjdswa";int ret = Strcmp(s1, s2);if (ret == 0){printf("s1等于s2\n");}else if (ret > 0){printf("s2 > s1+++%d\n", ret);}else{printf("s2 < s1+++%d\n", ret);}return 0;
}

image

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

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

相关文章

【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据

问题描述 Azure Logic App连接到SQL数据库后,执行存储过程并转换执行结果为JSON数据的步骤问题解答 在Logic App Design页面中,添加 Execute stored procedure组件,然后转换结果为JSON。 设计图如下: 关键步骤: 1) 添加 Sql Server 连接器中的 Execute stored procedur…

操作系统复习知识点

大题: 1、 磁盘调度算法:1先来先服务2最短寻道时间优先3电梯2、 银行家算法3、 页表地址转换4、 页面置换算法5、 处理机调度算法(先来先服务、短作业优先、高响应比优先)简答题 1、什么是操作系统?它有什么基本特征? 答:操作系统是指控制和管理计算机的软、硬件资源,合…

Kubernetes容器生命周期 —— 钩子函数详解(postStart、preStop)

1、概述容器生命周期钩子(Container Lifecycle Hooks)监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数。钩子函数能够感知自身生命周期中的事件,并在相应的时刻到来时运行用户指定的程序代码。kubernetes在主容器的启动之后和停止之前提供了两个钩子函数:…

Day1-Markdown笔记

Markdown学习 标题 三级标题 (共六级) 字体 hello,world hello,world hello,world hello,world 引用道阻且长,行则将至分割线图片 ![截图](C:\Users\魏子轩\Pictures\Screenshots\屏幕截图 2024-06-24 105856.png)超链接 [点击跳转到百度](百度一下,你就知道 (baidu.co…

关系选择器、属性选择器、伪类、伪元素选择器、分组与嵌套、选择器的优先级、宽度高度、字体、属性(text、background、border、display)

【一】关系选择器 【1】选择器类型后代选择器 儿子选择器 毗邻选择器 弟弟选择器选择符 名称 版本 描述E F 包含选择符(Descendant combinator) CSS1 选择所有被E元素包含的F元素。E>F 子选择符(Child combinator) CSS2 选择所有作为E元素的子元素F。E+F 相邻选择符(Adjacen…

vscode 快捷键

跳转到文件的最顶部 在 Visual Studio Code (VS Code) 中,你可以使用以下方法快速跳转到文件的最顶部:使用键盘快捷键:按下 Ctrl + Home 或 Command + Home(在 macOS 上)可以快速将光标跳转到文件的开头。使用命令面板:使用 Ctrl + Shift + P 或 Command + Shift + P(在…

渗透测试学习笔记

渗透测试:确定目标:#选择渗透对象,进行渗透准备信息收集:#指通过各种方式获取所需要的信息,便于在后续渗透过程更好进行,例如目标站点IP、中间件、脚本语言、端口、邮箱等是渗透测试成功的保障,提供更多暴露面和更大可能性 主动信息收集:# 通过直接访问网站进行操作、扫…

局部内部类

public class Person { public void eat(){ class heart{//内部心脏类 public void jump(){ System.out.println("心脏砰砰砰跳"); } } new heart().jump(); } } public class Test { public static void main(String[] args) { Person person=new Person(); person…