好难的程序,可以简化吗
好难得程序,可以简化吗#include<stdio.h>int match (char *s,char *t)
{
char *b = s;
char *p , *r;
for (;*s != '\0';s++)
{
for (p =s ,r = t; *r != '\0'&& p!= '\0'&& *p == *r;p++,r++)
{
;
}
if ( *r == '\0')
{
return (s - b);
}
return -1 ;
}
}
int main()
{
int a;
char s1[] = "abcdefghijk";
char s2[] = "abcdrfghijk" ;
a = match (s1,s2);
printf("%d\n",a);
return 0;
}
你想实现什么??返回值应该是匹配的首偏移地址吧? claws0n 发表于 2018-10-11 13:56
你想实现什么??返回值应该是匹配的首偏移地址吧?
如图 大可爱 发表于 2018-10-11 14:31
如图
我觉得这程序超级有问题,返回就不会继续遍历,按你给的字符串,应该返回 0
你要简化目前的代码就,*p == *r && *r != '\0';
页:
[1]