字符串位置的查询 - 指针
【问题描述】
编写一个函数 int strrindex(char *s, char *t),用于返回字符串 t 在字符串 s 中最右边出现的位置。该位置从0开始计数,如果 s 中不含有 t ,那么返回-1。
【输入形式】
分行输入两个字符串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.
主函数:
#include<stdio.h>
#include<string.h>
int main() {
int strrindex(char *s, char *t);
char s[1000], t[1000];
int k;
gets(s);
gets(t);
k = strrindex(s, t);
printf("%d", k);
return 0;
}
int strrindex(char *s, char *t);
int strrindex(char *s, char *t) {
int i , j , k, len;
len = strlen(s) ;
for (i = len - 1 ; i >= 0 ; i--){
k = 0;
j = i;
while(*(t + k) != 0 && *(s + j) == *(t + k)) {
k++;
j++;
}
if (k > 0 && *(t + k) == '\0') {
return i;
}
}
return -1;
}