以下是用 C 语言实现的代码: ```c #include <stdio.h> #include <string.h> // 定位子串函数 int index(char s[], char t[]) { int i, j, k; for (i = 0; s[i]!= '\0'; i++) { // 从主串 s 逐个位置开始比较 j = 0; k = i; while (s[k] == t[j] && t[j]!= '\0') { // 逐个字符比较 k++; j++; } if (t[j] == '\0') { // 如果模式串 t 比较完,说明匹配成功 return i + 1; // 返回匹配位置(从 1 开始计数) } } return 0; // 未匹配,返回 0 } int main() { char s[101], t[101]; int num; for (int i = 0; i < 3; i++) { scanf("%s %s", s, t); printf("%s\n", s); // 输出每次比较的主串字符序列 num = index(s, t); printf("%d\n", num); // 输出匹配位置 } return 0; } ``` 额外需要注意的逻辑点: 1. 要处理好边界情况,比如主串或模式串为空的情况。 2. 注意字符比较时的大小写问题,确保比较的准确性。 3. 对于匹配成功的位置计算,要考虑从 1 开始计数的要求。 [2024-12-15 00:51:59 | AI写代码神器 | 380点数解答]