问题描述】补充完整函数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-21 19:42:27 浏览: 66
以下是实现函数strrindex(s,t)的C++代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int strrindex(char s[], char t[]) {
int len1 = strlen(s);
int len2 = strlen(t);
int i, j, k;
for (i = len1 - len2; 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[100];
char t[100];
cin.getline(s, 100);
cin.getline(t, 100);
int index = strrindex(s, t);
cout << index << endl;
return 0;
}
```
在上述代码中,我们首先通过strlen函数求出字符串s和t的长度,然后从s的最后一个可能的位置开始,逐个比较t和s中的字符。如果t和s中的字符匹配,就继续比较下一个字符,否则就跳出当前循环,继续向前扫描s。如果最后发现t中所有字符都匹配成功,那么就返回t在s中最右边出现的位置。如果扫描完整个字符串s都没有找到t,那么就返回-1。
阅读全文