[问题描述]补充完整函数strrindex(,t,其功能用于返回字符串t在字符串s中最右边出现的位置该位置从0开始计数,如果s中不含有t,那么返回-1;在你编写的程序中,使用strrindex(s, t)函数输入t,s输出t在s最右边的位置. [输入形式]控制台分行输入字符串s,t. [输出形式]控制台输出一一个整数,是t在s最右边出现的位置 [样例输入] The strdup() function new returns apointer to a new string new [样例输出] 49
时间: 2024-03-10 17:45:45 浏览: 62
以下是函数strrindex的实现代码,可以直接使用:
```c
#include <stdio.h>
#include <string.h>
int strrindex(char s[], char t[]) {
int i, j, k;
int len_s = strlen(s);
int len_t = strlen(t);
if (len_t > len_s) {
return -1;
}
for (i = len_s - len_t; i >= 0; i--) {
for (j = i, k = 0; t[k] != '\0' && s[j] == t[k]; j++, k++);
if (k > 0 && t[k] == '\0') {
return i;
}
}
return -1;
}
int main() {
char s[1000], t[1000];
scanf("%[^\n]%*c", s); // 读取一行字符串s
scanf("%[^\n]%*c", t); // 读取一行字符串t
printf("%d\n", strrindex(s, t));
return 0;
}
```
在这段代码中,我们使用了两个循环,第一个循环从s的末尾开始向前遍历,第二个循环从当前位置开始,逐个字符比较s和t,如果匹配成功,就返回当前位置。如果最终没有找到匹配的位置,就返回-1。
需要注意的是,我们先判断了t的长度是否大于s的长度,如果是的话,就可以直接返回-1。另外,我们使用了scanf("%[^\n]%*c", s)这种方式读取输入,可以避免读取到换行符的问题。
阅读全文