编写函数,但会字符串t在s中最右边出现的位置,如果s中不包含t,则返回-1
#include<stdio.h>
int my_strncmp(char *str1,char *str2,int n);
int my_strlen(char *s);
int strindex(char *s,char *t);
int
main (int argc, char *argv[])
{
char s1[100],s2[100];
scanf("%s",s1);
scanf("%s",s2);
printf("%d\n",strindex(s1,s2));
return 0;
}
int my_strncmp(char *str1,char *str2,int n)
{
while(1)
{
if((*str1!=*str2)&&n!=0)
{
return *str1>*str2?1:-1;
}
if(n==0) return 0;
n--;
str1++;
str2++;
}
}
int my_strlen(char *s)
{
int n=0;
while(*s++)
n++;
return n;
}
int strindex(char *s,char *t)
{
char *p1=s,*p2=t;
int lens1,lens2,count=0;
while(*p1) p1++;
lens1=my_strlen(s);
lens2=my_strlen(t);
p1-=lens2;
while(count<=lens1-lens2)
{
if(my_strncmp(p1,p2,lens2)==0)
{
return lens1-lens2-count;
}
count++;
p1--;
}
return -1;
}
注:可用系统提供的strlen和strbcmp函数,我在这里重写了这两个函数。