当前位置: 首页 > news >正文

Day30~实现strcmp、strncmp、strchr、strpbrk

实现strcmp、strncmp、strchr、strpbrk

int my_strcmp(char *s1, char *s2) { if (s1 == NULL && s2 == NULL) { return 0; } if (s1 != NULL && s2 == NULL) { return 1; } if (s1 == NULL && s2 != NULL) { return -1; } while (*s1 != '\0' && *s2 != '\0') { if (*s1 > *s2) { return 1; } else if (*s1 < *s2) { return -1; } s1++; s2++; } if (*s1 == '\0' && *s2 == '\0') { return 0; } if (*s1 != '\0' && *s2 == '\0') { return 1; } if (*s1 == '\0' && *s2 != '\0') { return -1; } } int my_strncmp(char *s1, char *s2, size_t n) { if (s1 == NULL || s2 == NULL) { return -1; } for (int i = 0; (i < n && (*s1 != '\0' && *s2 != '\0')); i++) { if (s1[i] != s2[i]) { return -1; } } return 0; } char *my_strchr(char *s, int c) { while (*s != '\0') { if (*s == c) { return s; } else { s++; } } } char *my_strpbrk(char *s, char *accept) { char *temp = accept; char *result = NULL; while (*accept != '\0') { temp = strchr(s, *accept); // 查找accept第一次在字符s中出现的位置 if (temp != NULL) // 如果找到 { result = temp; // 将第一次找到的位置赋值给result while (*accept != '\0') // 再次遍历 { temp = strchr(s, *accept); // 再次查找 if (temp != NULL && temp < result) // 如果找到且比第一次找到的位置更靠左,则取 { result = temp; // 赋值给result } accept++; // 指针后移 } return result; // 返回结果 } } }
http://www.cnnetsun.cn/news/120109.html

相关文章:

  • 好无聊,最近没思路
  • Kotaemon水务管理系统智能预警机制
  • Kotaemon视频内容摘要生成实验记录
  • 用Matlab探索齿轮系统的奥秘:刚度计算与动力学响应
  • 【node阅读-0】下载编译node
  • EmotiVoice支持动态情感过渡,实现平滑情绪变化
  • EmotiVoice推理时显存占用优化方案(适用于低配GPU)
  • EmotiVoice支持HTTPS加密传输,保障数据安全
  • 2025年最新AI编程助手深度横评:按功能类型选对你的“副驾”
  • - - - 正则表达式匹配 diff - - -
  • Kotaemon支持PDF/PPT/Word等多种文档解析
  • Kotaemon在制造业知识管理中的创新应用案例
  • Kotaemon配置文件全参数说明,新手必看!
  • EmotiVoice语音合成结果的跨设备播放一致性测试
  • EmotiVoice语音合成安全性分析:防止恶意声音克隆的机制
  • rrweb 原理:基于 DOM 变动(MutationObserver)的会话录制与回放
  • 智能仓储进化史㉚ | 特斯拉Optimus能搬货了,但人形机器人真的是未来吗?
  • 10、Mac OS X 下的 UNIX 开发工具
  • 13、Apple开发工具全解析:GUI与命令行工具的高效运用
  • 20、AppleScript编程入门与实践
  • 2026年SEVC SCI2区,当机器人向自然学习:GLWOA-RRT*受自然启发的运动规划方法,深度解析+性能实测
  • 24、Mac OS与UNIX命令映射及系统特性解析
  • EmotiVoice语音合成中的语速自适应调节功能介绍
  • 基于EmotiVoice的情感化TTS应用场景全解析
  • EmotiVoice语音情感标注数据集构建方法分享
  • PyQt(12)TreeWidget与TreeView对比
  • 10分钟变身LOL大神:LeaguePrank身份伪装完整指南
  • 5分钟掌握LOL游戏形象定制:LeaguePrank合规美化工具使用指南
  • ConnectivityFilter数据集中分离的区域或连通分量
  • AI 编程的“90% 陷阱”:为什么你生成代码 1 分钟,修 Bug 却要 1 小时?