免费设计app的网站建设app宣传推广方案

news/2025/9/23 14:40:28/文章来源:
免费设计app的网站建设,app宣传推广方案,上海的网站设计公司价格,wordpress discuz 整合今天又来继续我们的字符串函数的文章#xff0c;这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf strchr strchr 是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现 strchr 函数的示例这也是最后一篇了。希望这两篇文章能让各位理解透字符串函数。 目录 strchr strtok sprintf和sscanf  strchr strchr  是一个用于在字符串中查找特定字符首次出现位置的函数。以下是解析和模拟实现  strchr  函数的示例  解析  strchr  函数     #include stdio.h// 解析 strchr 函数 void parse_strchr() {const char *string  Hello, World!;char target  l;// 使用 strchr 函数查找字符const char *found  strchr(string, target);if (found ! NULL) {printf(Character %c found at index: %zu\n, target, found - string);} else {printf(Character %c not found in string\n, target);} }int main() {parse_strchr();return 0; } 在上述示例中我们定义了一个字符串  string  和要查找的目标字符  target 。然后使用  strchr  函数在字符串中查找目标字符并将找到的位置存储在  found  变量中。根据  found  是否为  NULL 我们输出相应的结果。   模拟实现  strchr  函数     #include stdio.h// 模拟实现 strchr 函数 const char * my_strchr(const char * string, char target) {for (; *string ! \0; string){if (*string target){return string;}}return NULL; }int main() {const char * string Hello, World!;char target l;// 使用模拟的 my_strchr 函数查找字符const char * found my_strchr(string, target);if (found ! NULL){printf(Character%cfound at index:%zu\n, target, found - string);}else {printf(Character%c not found in string\n, target);}return 0; }在模拟实现中我们使用一个循环遍历字符串中的每个字符。如果找到了与目标字符匹配的字符就返回该字符的地址。如果循环结束后仍未找到返回  NULL 。   这两种方法解析和模拟实现都可以用来在字符串中查找特定字符。使用标准库中的  strchr  函数通常更方便和可靠但模拟实现可以帮助你更好地理解其工作原理。     strtok strtok  是一个用于分割字符串的函数。它根据指定的分隔符将字符串分割成多个部分并可以逐个提取这些部分。   下面是模拟和解析  strtok  函数的示例 解析  strtok  函数 #include stdio.h #include string.h// 解析 strtok 函数 void parse_strtok() {char string[] apple,banana,cherry;char delimiter[] ,;// 使用 strtok 函数分割字符串char * token strtok(string, delimiter);while (token ! NULL) {printf(%s\n, token);token strtok(NULL, delimiter);} }int main() {parse_strtok();return 0; }在这个示例中我们直接使用了标准库中的  strtok  函数来分割字符串并打印每个部分。  模拟  strtok  函数     #include stdio.h #include string.h// 模拟 strtok 函数 char * my_strtok(char * str, const char * delimiter) {static char* token NULL;if (str NULL) {return NULL;}while (1){// 查找下一个分隔符的位置char* next strstr(str, delimiter);// 如果找到分隔符if (next ! NULL) {*next \n;}else if (next NULL)break;}token str;return token; }int main() {char string[] apple,banana,cherry;char delimiter[] ,;// 使用模拟的 my_strtok 函数分割字符串char * token my_strtok(string, delimiter);while (token ! NULL) {printf(%s\n, token);token my_strtok(NULL, delimiter);}return 0; } 在上述示例中我们模拟了  strtok  函数的行为。通过使用  strstr  函数查找分隔符的位置并将其设置为字符串的换行符。然后返回找到的下一个部分的指针。     无论是模拟还是直接使用  strtok 它们的基本原理都是根据指定的分隔符将字符串分割成多个部分。需要注意的是 strtok  函数会修改原始字符串并且在多次调用时需要注意处理  NULL  指针的情况。 sprintf和sscanf     sprintf 是一个变参函数用于格式化字符串并将结果写入到指定的缓冲区中其函数声明为 int sprintf(char *buffer, const char *format, ...) 。下面是对各参数的详细解释   -  buffer 是 char 类型的指针指向要写入的字符串的指针。 -  format 格式化字符串即在程序中指定的格式。 -  argument 可选参数可以为任意类型的数据可以有一个或多个参数。   该函数的返回值是写入到缓冲区中的字符数不包括字符串结尾的空字符 \0 。下面是一些常见的用法示例  - 格式化数字字符串     // 把整数123打印成一个字符串保存在s中 sprintf(s, %d, 123);  // 产生 123 - 控制浮点数打印格式     // 保留小数点后6位数字 sprintf(s, %f, 3.1415926);  // 产生 3.141593 - 连接字符串     // 连接字符串 char *who  I;  char *whom  52PHP;  sprintf(s, %s love %s., who, whom);  // 产生 I love 52PHP.   - 打印整数和浮点数时可以指定宽度     // 指定宽度 char a1[]  {A, B, C, D, E, F, G};  char a2[]  {H, I, J, K, L, M, N};  sprintf(s, %.7s%.7s, a1, a2);  // 产生 ABCDEFGHIJKLMN  需要注意的是 sprintf 函数在字符串中插入变量时不会进行边界检查如果格式化字符串和变参列表不匹配可能会导致缓冲区溢出或其他问题。因此在使用 sprintf 函数时应确保格式化字符串和变参列表的匹配并确保缓冲区的大小足够容纳输出结果。 sscanf 函数是一个用于从字符串中读取数据的 C 语言函数与 scanf 函数类似但是它的输入源是一个字符串而不是标准输入。 sscanf 函数的声明如下     int sscanf(const char *str, const char *format, ...) 参数说明  -  str 这是 C 字符串是函数检索数据的源。 -  format 这是 C 字符串包含了以下各项中的一个或多个空格字符、非空格字符 和 format 说明符 。 -  ... 这是可变参数为对应的附加参数所指向的数据指定一个不同于整型针对 d、i 和 n、无符号整型针对 o、u 和 x或浮点型针对 e、f 和 g的大小。  该函数会将参数 str 的字符串根据参数 format 字符串来转换并格式化数据转换后的结果存于对应的参数内。返回值为成功匹配和赋值的个数如果没有成功匹配的项则返回 0 。   下面是一些常见的用法示例   - 从字符串中读取一个字符     char c; sscanf(Hello, %c, c); - 从字符串中读取一个整数     int i; sscanf(12345, %d, i); - 从字符串中读取一个浮点数     float f; sscanf(3.1415, %f, f); - 从字符串中读取多个数据     int i, j; char s[50]; sscanf(12 56, %d %s, i, s, j); 需要注意的是 sscanf 函数在字符串中读取数据时不会进行边界检查可能会导致缓冲区溢出或其他问题。因此在使用 sprintf 函数时应确保字符串中的数据格式与 format 字符串中的格式说明符相匹配并确保缓冲区的大小足够容纳读取的数据。 sprintf和sscanf的模拟实现太复杂就不模拟了。 文章已到末尾希望多多支持。

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

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

相关文章

书虫私藏的免费阅读渠道大公开!

兄弟们!是不是经常在网上翻来翻去,就为了找那些免费又好看的小说平台?每次想畅快看书却找不到合适的渠道,真的超让人着急!今天我就来给大家解决书荒的烦恼,花了不少心思整理出一批超好用的免费小说 APP 和网站�…

php在网站开发中的应用网络优化器

河北省最好的二本财经类大学有哪些2020-06-20 17:01:20文/刘思琪河北省是我国高考大省,2019年高考报名人数创近十年新高,报名人数达55.96万人。高考人数的增加会导致竞争更加激烈,那么对于分数不是很高的同学而言选择本省的一些高校是比较不错…

智能工厂革命:Gitee PPM如何重塑企业级软件开发新范式

智能工厂革命:Gitee PPM如何重塑企业级软件开发新范式 在数字化转型的浪潮席卷全球之际,软件开发行业正经历一场前所未有的生产方式变革。Gitee项目组合管理(PPM)系统作为这一变革的引领者,正在重新定义企业级软件开…

Jupyter Notebook的交互式编写环境方便py开发

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PyTorch图神经网络(三)

PyTorch图神经网络(三) 1.图注意力网络(GAT) ​ 之前提到的图卷积网络其实已经包含了图注意力网络的思想,他用节点的度来衡量节点的重要性,这样就会使得邻居较少的节点比其他节点更加重要。图注意力网络解决了这…

Spring中@Primary注解的作用及小demo演示

Spring中@Primary注解的作用及小demo演示一、@Primary注解的核心作用 @Primary是Spring框架中用于解决依赖注入歧义问题的注解,当容器中存在多个相同类型的Bean时,Spring无法自动决定注入哪一个,此时通过@Primary标…

站长工具seo综合查询张家界新娘抖音代运营协议合同范本

data [0.1869, 0.1900, 0.1878, 0.1847]; b bar(data); ch get(b,children); set(gca,XTickLabel,{非加权聚类欧氏距离类比,非加权聚类马氏距离类比,加权聚类欧氏距离类比,加权聚类马氏距离类比}) set(ch,FaceVertexCData,[1 1 1;1 1 1;1 1 1;1 1 1;])

网站运营主要做什么亚马逊雨林在地图上的位置

探索AI视频创新:Sora的奇迹 随着科技的不断演进,AI视频模型已经成为人工智能领域的一颗新星。在这场技术的风暴中,OpenAI的Sora模型以其杰出的性能和前瞻性的技术脱颖而出,正引领着AI视频领域的全新创新浪潮。 Sora的技术之光 …

建设网站一般要多少钱中国建设银行人才招聘

Runtime v2 为运行时作者集成 containerd 引入了一级 shim API。 containerd 作为守护进程,并不直接启动容器。相反,它充当更高级别的管理器 或枢纽的作用,以协调容器和内容的活动。被称作 "运行时"的程序真正来启动、停止和管理容…

三明做网站wordpress 百度云视频

命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系…

东莞做网站建设wordpress 安装出错

1.总结 目的:想要在故障恢复后不丢数据 输入端 保证可以重复发送数据如果是kafka,Flink负责维护offset,不用kafka维护设置kafka的隔离级别为:读已提交flink 开启检查点采用对齐或者不对齐的精确一次输出端 kafka 幂等事务两阶段…

腾讯免费网站空间西昌seo

1.正常卸载MySQL数据库 2.将 C:/ProgramData 目录下的子目录 MySQL 删除 注意:目录 ProgramData 是隐藏目录,你正常情况下看不到,你可以在文件地址栏输入 C:/ProgramData 进入该目录下。

佛山美容网站建设摄影app

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具或组件,希望对您有用!简介 ABP-MicroService是 一个基于ABP vNext微服务架构、vue-element-admin的后台管理框架,适用于大型分布式业务系统和企…

elementor做视频网站多个wordpress用户

文章目录 概念介绍设置方法示例代码内容总结 我们在上一章回中介绍了Card Widget相关的内容,本章回中将介绍国际化设置.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的国际化设置是指在App设置相关操作,这样可以让不同国家的…

2025年9月16日纸质证书 - 宋同学PostgreSQL管理员(中级)认证

2025年9月16日 宋同学PostgreSQL中级认证证书【纸质版】为什么选择工信人才PostgreSQL认证:发证机构:工信部人才交流中心属于工信部直属的二类事业单位,证书的权威性更高;应用领域:工信人才所发的PG认证隶属于信息…

C# 18天 029 依赖注入

依赖注入需要依赖注入的框架using Microsoft.Extensions.DependencyInjection;可以向serviceConllection 要每次是要同一个单例呢还是要重新创建一个呢

ruoyi-vue列表显示关联

之前我们讲解了如何使用ruoyi去自动生成代码,自动做成菜单,增删改查的功能都有了,现在我们来做点改进,比如这里需要显示正确的姓名。 而且同时我们还想让这个自增长编号这一列不再显示,那么我们需要打开这段html的…

自定义网关选择后端的微服务实例实现

自定义网关选择后端的微服务实例实现1.概述 我们在使用微服务时,比如我们后端部署了很多台微服务实例,比如订单 10台,库存1O台,其中每两台服务有一个客户,就是一个客户只可以使用其中的两台微服务实例,因此我们需…

VUE3切换页面时,页面没有加载

初学VUE开发,遇到这个问题.在从A页面切换到B页面时,B页面没有加载.但是从C页面加载B页面是正常的 最终问题是 页面结构 必须是template 里必须用一个最大的 div 包裹

专业网站建设收费建设部网站如何下载规范 标准

kafka基本概念 Producer 生产者:负责将消息发送到 BrokerConsumer 消费者:从 Broker 接收消息Consumer Group 消费者组:由多个 Consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费&am…