//若是t出现在s的尾部,返回1,否则0
#include<stdio.h>
#include<string.h>
int Copy(char s[],char t[]);
int main()
{
char s[20];
char t[10];
gets(s);
gets(t);
int c=Copy(s,t);
printf("%d\n",c);
return 0;
}
int Copy(char s[],char t[])
{
/*
char *bs=s; //这是书上的答案
char *bt=t;
for(;*s;s++)
;
for(;*t;t++)
;
for(;*s==*t;s--,t--)
if(t==bt||s==bs)
break;
if(*s==*t&&t==bt&&*s!='\0')
return 1;
return 0;
*/
char *p; //这是我自己写的一个,运行没出错
p=t;
int sum=0;
while(*s&&*s!='\0'&&*t!='\0')
{
if(*s==*p)
{
p++;
sum++;
}
else
{
p=t;
sum=0;
}
s++;
}
int n=strlen(t);
if(sum==n)
return 1;
return 0;
}
用指针的方式实现将t指向的字符串复制到s字符串的尾部
最新推荐文章于 2022-08-23 11:07:53 发布