问题描述】补充完整函数strrindex(s,t),其功能用于返回字符串t在字符串s中最右边出现的位置.该位置从0开始计数,如果s中不含有t,那么返回-1;在你编写的程序中,使用strrindex(s,t)函数,输入t,s,输出t在s最右边的位置. 【输入形式】控制台分行输入字符串s,t. 【输出形式】控制台输出一个整数,是t在s最右边出现的位置. 【样例输入】The strdup() function new returns a pointer to a new string new 【样例输出】49 【样例说明】输入的第一行为字符串s,第二行为字符串t="new".t在s中出现过两次,其中在最右边出现的位置中"new"的第一个字符“n”;在s中所在的位置为49.
时间: 2024-03-24 15:36:50 浏览: 70
以下是函数strrindex的代码实现:
```c
#include <stdio.h>
#include <string.h>
int strrindex(char s[], char t[]) {
int i, j, k;
int pos = -1;
for (i = 0; s[i] != '\0'; i++) {
for (j = i, k = 0; t[k] != '\0' && s[j] == t[k]; j++, k++);
if (k > 0 && t[k] == '\0') {
pos = i;
}
}
return pos;
}
int main() {
char s[1000];
char t[1000];
fgets(s, sizeof(s), stdin); // 读入字符串s
fgets(t, sizeof(t), stdin); // 读入字符串t
s[strlen(s) - 1] = '\0'; // 去掉fgets自带的换行符
t[strlen(t) - 1] = '\0'; // 去掉fgets自带的换行符
int pos = strrindex(s, t);
printf("%d\n", pos);
return 0;
}
```
函数strrindex的实现思路是:从字符串s的起始位置开始往后遍历,对于每个位置,都从该位置开始和字符串t逐个字符比较,如果匹配成功,则记录下该位置,并继续往后遍历,直到字符串s的末尾。如果字符串s中不含有t,则返回-1。
在主函数中,我们先通过`fgets`函数读入字符串s和字符串t,然后去掉字符串末尾的换行符,最后调用strrindex函数得到t在s中最右边出现的位置,并将结果打印输出。
阅读全文