C 语言实现:精准计算子串在母串中出现的次数
# 计算子串在母串中出现次数的C语言实现 ```c #include <stdio.h> #include <string.h> int countSubstring(const char *str, const char *substr) { int count = 0; int substr_len = strlen(substr); // 空子串直接返回0 if (substr_len == 0) { return 0; } // 遍历母串 for (int i = 0; str[i] != '\0'; ) { // 检查当前位置是否匹配子串 int match = 1; for (int j = 0; j < substr_len; j++) { if (str[i + j] != substr[j]) { match = 0; break; } } // 如果匹配成功,增加计数并跳过子串长度 if (match) { count++; i += substr_len; } else { i++; } } return count; } int main() { char str[100], substr[100]; printf("请输入母串: "); fgets(str, sizeof(str), stdin); str[strcspn(str, "\n")] = '\0'; // 去除换行符 printf("请输入子串: "); fgets(substr, sizeof(substr), stdin); substr[strcspn(substr, "\n")] = '\0'; // 去除换行符 int occurrences = countSubstring(str, substr); printf("子串出现的次数: %d\n", occurrences); return 0; } ``` ## 代码说明 1. `countSubstring`函数接收母串和子串指针,返回子串出现次数 2. 使用双重循环检查每个可能的匹配位置 3. 外层循环遍历母串,内层循环检查当前位置是否匹配子串 4. 匹配成功时计数增加并跳过子串长度,不匹配时只前进一个字符 5. 主函数处理输入输出,使用`fgets`安全读取字符串 ## 注意事项 1. 该算法时间复杂度为O(n*m),其中n是母串长度,m是子串长度 2. 对于空子串的特殊情况直接返回0 3. 该实现区分大小写,如需不区分大小写需要修改比较逻辑 ######[AI写代码神器 | 515点数解答 | 2025-03-29 15:10:17]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)369
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)157
- 数字化制图综合平台:引领烟草物流及多领域设计革新 在企业数字化转型的时代浪潮中,数字化制图技术创新应用成为产业升级与提升竞争力的关键。企业对高效、精准、智能化设计解决方案需求迫切,构建集二维到三维正逆向工程快捷化、干涉检测可视化、设备明细数据提取自动化以及设备模块模型库于一体的综合平台意义重大。 此平台集成先进数字化制图工具与智能算法,可实现二维设计到三维建模的无缝转换,大大缩短设计周期。正逆向工程能快速切换,满足不同场景设计需求。内置干涉检测功能可实时监测设计潜在冲突,保障设计方案可行与安全。设备明细数据自动提取提高设计准确性与效率。设备模块模型库为设计师提供丰富资源,支持设计标准化与模块化,加速项目推进。 整体来看,该综合平台的应用极大促进了烟草物流行业及更广泛领域的技术创新与效率提升。在烟草物流方案图纸智能化设计中,它提升了图纸设计效率与质量,使设计工作更加高效、精准。对于企业而言,这一平台带来显著竞争优势,能帮助企业在数字化转型中脱颖而出,在激烈的市场竞争中占据有利地位,推动整个行业向更高效、更智能的方向发展。 (阿里通义 | 216点数解答 | 2024-10-30 20:30:51)187
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)341
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)270
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)261
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)493
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)378
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)447
- JS实现移动端网页快捷键创建方式及注意事项(阿里通义 | 284点数解答 | 2024-06-05 19:02:59)281
- 车载系统 UML 类图设计:涵盖 Car、Engine、娱乐系统等的完整类定义与关系解析 (字节豆包 | 760点数解答 | 2024-08-15 22:51:04)325
- Java 继承实现:重温经典剪刀石头布游戏(字节豆包 | 451点数解答 | 2024-10-20 19:57:58)478