学习C语言(18)

整理今天的学习内容

1.strcmp的使用和模拟实现

strcmp是用来比较字符串的大小的

比较方式:比较两个字符串中对应位置上字符ASCII码值的⼤小

第⼀个字符串大于第二个字符串,则返回⼤于0的数字

第⼀个字符串等于第二个字符串,则返回0

第⼀个字符串小于第二个字符串,则返回小于0的数字

strcmp函数的模拟实现:

2.strncpy函数的使用 

char * strncpy ( char * destination, const char * source, size_t num );

从源字符串拷贝num个字符到目标空间

       

如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个

             

 3.strncat函数的使用 

char * strncat ( char * destination, const char * source, size_t num );

将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个‘\0’

如果source指向的字符串的长度小于num,只会将字符串中到‘\0’的内容追加到destination指向的字符串末尾

为了防止警告,建议这样写:

4.strncmp函数的使用 

 int strncmp ( const char * str1, const char * str2, size_t num );

比较str1和str2的前num个字符,如果相等就继续往后比较,最多比较num个字母,如果提前发现不⼀样,就提前结束,如果num个字符都相等,就返回0.

第⼀个字符串大于第二个字符串,则返回⼤于0的数字

第⼀个字符串等于第二个字符串,则返回0

第⼀个字符串小于第二个字符串,则返回小于0的数字

5.strstr的使用和模拟实现 

char * strstr ( const char * str1, const char * str2);
函数返回字符串str2在字符串str1中第⼀次出现的位置
字符串的比较匹配不包含 \0 字符,以\0 作为结束标志

 

 strstr函数的模拟实现:

6.strtok函数的使用

char * strtok ( char * str, const char * sep);

sep参数指向⼀个字符串,定义了用作分隔符的字符的集合

str指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标记

strtok函数找到str中的下⼀个标记,并将其用 \0 结尾,返回⼀个指向这个标记的指针(注:strtok函数会改变被操作的字符串,所以被strtok函数切分的字符串⼀般都是临时拷贝的内容并且可修改)

若strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串
中的位置

若strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标

如果字符串中不存在更多的标记,则返回 NULL 指针
 

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

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

相关文章

【python计算机视觉编程——3.图像到图像的映射】

python计算机视觉编程——3.图像到图像的映射 3.图像到图像的映射3.1 单应性变换3.1.1 直接线性变换算法(DLT)3.1.2 仿射变换 3.2 图像扭曲3.2.1 图像中的图像3.2.2 分段仿射扭曲3.2.3 图像配准 3.3 创建全景图3.3.1 RANSAC3.3.2 稳健的单应性矩阵估计3.…

机器学习/数据分析--通俗语言带你入门决策树(结合分类和回归案例)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 机器学习是深度学习和数据分析的基础,接下来将更新常见的机器学习算法注意:在打数学建模比赛中,机器学习用的也很多&a…

从零开始:渗透测试环境安装详细教程

一、引言 在进行渗透测试之前,搭建一个合适的渗透测试环境是至关重要的。一个良好的渗透测试环境可以帮助我们更好地学习和实践渗透测试技术,同时也可以降低对实际生产环境造成的风险。本文将详细介绍如何安装渗透测试环境,包括选择虚拟机软…

李沐--动手学深度学习 批量规范化

1.理论 2.从零开始实现批量规范化 import torch from torch import nn from d2l import torch as d2l from torch.utils.hooks import RemovableHandle #从零开始实现批量规范化 def batch_norm(X,gamma,beta,moving_mean,moving_var,eps,momentum):#通过is_grad_enabled来判断…

PyCharm汉化:简单一步到胃!PyCharm怎么设置中文简体

最近在弄python的项目 一起加油哦 步骤: PyCharm的汉化可以通过两种主要方法完成: 方法一:通过PyCharm内置的插件市场安装中文语言包 1. 打开PyCharm,点击File -> Settings(在Mac上是PyCharm -> Preferences…

java一键生成数据库说明文档html格式

要验收项目了,要写数据库文档,一大堆表太费劲了,直接生成一个吧,本来想用个别人的轮子,网上看了几个,感觉效果不怎么好,自己动手写一个吧。抽空再把字典表补充进去就OK了 先看效果: …

Python3:多行文本内容转换为标准的cURL请求参数值

背景 在最近的工作中,经常需要处理一些接口请求的参数,参数来源形式很多,可能是Excel、知识库文档等,有些数据形式比较复杂,比如多行或者包含很多不同的字符,示例如下: **客服质检分析指引** …

【精选】分享9款AI毕业论文生成初稿题目网站

在当今学术研究领域,AI技术的应用日益广泛,尤其是在学术论文的撰写过程中。AI论文生成器的出现,极大地简化了学术写作流程,提高了写作效率。以下是9款推荐的AI毕业论文生成初稿的网站,它们各有特色,能够满足…

MFC工控项目实例之七点击下拉菜单弹出对话框

承接专栏《MFC工控项目实例之六CFile添加菜单栏》 1、在SEAL_PRESSUREDlg.h文件中添加代码 class CSEAL_PRESSUREDlg : public CDialog { ...afx_msg void OnTypeManage(); ... } 2、在SEAL_PRESSUREDlg.cpp文件中添加代码 BEGIN_MESSAGE_MAP(CSEAL_PRESSUREDlg, CDialog)//…

MySQL的源码安装及基本部署(基于RHEL7.9)

这里源码安装mysql的5.7.44版本 一、源码安装 1.下载并解压mysql , 进入目录: wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz tar xf mysql-boost-5.7.44.tar.gz cd mysql-5.7.44/ 2.准备好mysql编译安装依赖: yum install cmake g…

Python爬虫——简单网页抓取(实战案例)小白篇

Python 爬虫是一种强大的工具,用于从网页中提取数据。这里,我将通过一个简单的实战案例来展示如何使用 Python 和一些流行的库(如 requests 和 BeautifulSoup)来抓取网页数据。 实战案例:抓取一个新闻网站的头条新闻标…

Windows上传Linux文件行尾符转换

Windows上传Linux文件行尾符转换 1、Windows与Linux文件行尾符2、Windows与Linux文件格式转换 1、Windows与Linux文件行尾符 众所周知,Windows、Mac与Linux三种系统的文件行尾符不同,其中 Windows文件行尾符(\r\n): L…

使用kafka改造分布式事务

文章目录 1、kafka确保消息不丢失?1.1、生产者端确保消息不丢失1.2、kafka服务端确保消息不丢失1.3、消费者确保正确无误的消费 2、生产者发送消息 KafkaService3、UserInfoServiceImpl -> login()4、service-account - > AccountListener.java 1、kafka确保消…

day31-测试之性能测试工具JMeter的功能概要、元件作用域和执行顺序

目录 一、JMeter的功能概要 1.1.文件目录介绍 1).bin目录 2).docs目录 3).printable_docs目录 4).lib目录 1.2.基本配置 1).汉化 2).主题修改 1.3.基本使用流程 二、JMeter元件作用域和执行顺序 2.1.名称解释 2.2.基本元件 2.3.元件作用域 1).核心 2).提示 3).作用域的原则 2.…

Redis 实现哨兵模式

目录 1 哨兵模式介绍 1.1 什么是哨兵模式 1.2 sentinel中的三个定时任务 2 配置哨兵 2.1 实验环境 2.2 实现哨兵的三条参数: 2.3 修改配置文件 2.3.1 MASTER 2.3.2 SLAVE 2.4 将 sentinel 进行备份 2.5 开启哨兵模式 2.6 故障模拟 3 在整个架构中可能会出现的问题 …

go中 panicrecoverdefer机制

go的defer机制-CSDN博客 常见panic场景 数组或切片越界,例如 s : make([]int, 3); fmt.Println(s[5]) 会引发 panic: runtime error: index out of range空指针调用,例如 var p *Person; fmt.Println(p.Name) 会引发 panic: runtime error: invalid m…

网络通信tcp

一、udp案例 二、基于tcp: tcp //c/s tcp 客户端: 1.建立连接 socket bind connect 2.通信过程 read write close tcp服务器: 1.建立连接 socket bind listen accept 2.通信过程 read write close connect函数 int connect(int sockfd, con…

Git克隆仓库太大导致拉不下来的解决方法 fatal: fetch-pack: invalid index-pack output

一般这种问题是因为某个文件/某个文件夹/某些文件夹过大导致整个项目超过1G了导致的 试过其他教程里的设置depth为1,也改过git的postBuffer,都不管用 最后还是靠克隆指定文件夹这种方式成功把项目拉下来 1. Git Bash 输入命令 git clone --filterblob:none --sparse 项目路径…

探索Unity3D URP后处理在UI控件Image上的应用

探索Unity3D URP后处理在UI控件Image上的应用 前言初识URP配置后处理效果将后处理应用于UI控件方法一:自定义Shader方法二:RenderTexture的使用 实践操作步骤一:创建RenderTexture步骤二:UI渲染至RenderTexture步骤三:…

视频如何转gif?分享这几款软件!

在这个快节奏、高创意的互联网时代,动图(GIF)以其独特的魅力成为了社交媒体、聊天软件中的宠儿。它们不仅能瞬间抓住眼球,还能让信息传递更加生动有趣。然而,你是否曾为如何将精彩瞬间从视频中精准截取并转换成GIF而苦…