您的位置:首页 > 其它

The programming language 练习4-1

2013-10-08 19:04 169 查看
编写函数,但会字符串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函数,我在这里重写了这两个函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: