#include#include int main(){ char s[100001],t[100001]; char *p1,*p2; while(scanf("%s%s",s,t)!=EOF) { p1=s; p2=t; while(*p1 && *p2) { if(*p1 != *p2) p2++; else { p2++; p1++; } } if(*p1=='\0') printf("Yes\n"); else printf("No\n"); } return 0;}
题意:判断s是不是t的字串
s: abcde
t:bcdefasdfsdfasdfsd
让s和t的左边对齐
p1指向a p2指向b
如果不等,让p2右移,直到找到,然后两个指针同时右移
有三种情况:
*p1 是 \0 *p2 是 \0
*p1 是 \0 *p2 不是\0
*p1 不是\0 *p2是\0
*p1是\0就一定将s串走完了 Yes