C 语言实现定位子串算法:输出比较字符与匹配序号
以下是为您编写的 C 语言代码示例: ```c #include <stdio.h> #include <string.h> // 定位子串函数 int index(char s[], char t[]) { int i, j, pos; for (pos = 0; s[pos]!= '\0'; pos++) { // 从主串的每个位置开始比较 i = pos; j = 0; while (s[i]!= '\0' && t[j]!= '\0' && s[i] == t[j]) { // 逐个字符比较 i++; j++; } if (t[j] == '\0') { // 如果模式串匹配完毕 return pos + 1; // 返回匹配位置(从 1 开始计数) } } return 0; // 未匹配返回 0 } int main() { char s[101], t[101]; int cases; scanf("%d", &cases); while (cases--) { scanf("%s %s", s, t); int res = index(s, t); printf("比较的字符序列: "); int i, j, pos; for (pos = 0; s[pos]!= '\0'; pos++) { i = pos; j = 0; while (s[i]!= '\0' && t[j]!= '\0' && s[i] == t[j]) { printf("%c", s[i]); i++; j++; } printf(" "); } printf("\n"); printf("匹配位置: %d\n", res); } return 0; } ``` 额外需要注意的逻辑点: 1. 要注意处理输入字符串为空的情况。 2. 对于字符比较时的边界情况要仔细处理,避免越界访问。 3. 注意内存的合理使用,避免内存泄漏。 ######[AI写代码神器 | 462点数解答 | 2024-12-15 00:52:00]
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)22
- C++实现奇数阶矩阵中间行特殊字符输出(DeepSeek | 261点数解答 | 2026-02-28 10:55:53)29
- Octave实验:华氏温度与蟋蟀鸣叫次数的线性及二次多项式拟合与误差分析(DeepSeek | 1030点数解答 | 2025-04-06 09:01:47)288
- 7 - 8菜单计价程序-2:Java实现点菜计价与订单管理,附详细代码及注意事项(DeepSeek | 1256点数解答 | 2025-10-17 17:32:14)135
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- C++实现n×n图案输出:中间行'#'其余'*',开发需注意三点!(字节豆包 | 265点数解答 | 2026-01-16 19:06:25)58
- C++实现输出指定奇数阶中间行带#的矩形图案(字节豆包 | 267点数解答 | 2026-02-14 19:34:03)33
- C++实现输出指定奇数阶中间为#其余为*的方阵(字节豆包 | 385点数解答 | 2026-02-25 16:20:13)30
- C++实现特定图案输出的代码示例与开发建议(字节豆包 | 604点数解答 | 2026-03-07 19:39:05)22
- C++实现特定图案输出及开发建议(字节豆包 | 476点数解答 | 2026-03-07 19:39:38)33
- C++实现输出n行n列特定图案(字节豆包 | 352点数解答 | 2026-03-20 19:10:14)37
- C++实现输出指定奇数阶中间为#的矩形图案(字节豆包 | 380点数解答 | 2026-03-20 19:14:24)25