C 语言实现字符串匹配:含边界处理及 \0 把控,精准输出匹配序号!
```c #include <stdio.h> // 函数:查找模式串在主串中的位置 int index(char s[], char t[], int pos) { int i = pos, j = 0; // 初始化指示位置 while (s[i]!= '\0' && t[j]!= '\0') { // 当主串和模式串都未结束 if (s[i] == t[j]) { // 若当前字符相等 i++; // 主串位置后移 j++; // 模式串位置后移 if (t[j] == '\0') { // 若模式串结束,匹配成功 return i - j + 1; // 返回匹配开始位置(从 1 计数) } } else { // 若当前字符不相等 i = i - j + 1; // 主串位置回退到本次匹配开始的下一个位置 j = 0; // 模式串位置重置为开头 } } return 0; // 未匹配成功返回 0 } int main() { char s[] = "hello world"; char t[] = "world"; int pos = 0; int result = index(s, t, pos); if (result!= 0) { printf("匹配成功,匹配序号为:%d\n", result); } else { printf("匹配失败\n"); } return 0; } ``` 额外需要注意的逻辑点: 1. 处理边界情况,比如主串或模式串为空的情况。 2. 注意字符数组的结束标志'\0',避免越界访问。 3. 对于匹配成功的判断条件要准确,确保返回的序号是从 1 开始计数的。 ######[AI写代码神器 | 422点数解答 | 2024-12-15 12:39:10]
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)478
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)464
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)401
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)426
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)78
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)107
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Octave实验:华氏温度与蟋蟀鸣叫次数的线性及二次多项式拟合与误差分析(DeepSeek | 1030点数解答 | 2025-04-06 09:01:47)278
- 7 - 8菜单计价程序-2:Java实现点菜计价与订单管理,附详细代码及注意事项(DeepSeek | 1256点数解答 | 2025-10-17 17:32:14)119
- Python正则表达式:精准匹配字符串“abcablc”中的第二个“a”(字节豆包 | 554点数解答 | 2025-06-12 15:25:28)120
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)459
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)264