题目 高级模式匹配
描述
给定两个字符串s和t,判断s是否是t的子序列,即从t中删除若干个(包括0个)字符,将剩余的字符连接起来,即可获得s。字符串s和t长度不超过1000。
输入
第一行,字符串t,文本长度\le≤1000。
第二行,字符串s,文本长度\le≤1000。
输出
若s是t的子序列,输出1,否则输出0
输入样例 1
样例1:
ATBhCde His
This
样例2:
ATBhCde His
That
输出样例 1
样例1:
1
样例2:
0
请问,如下,为什么用gets()可以,用scanf不行
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n1,n2;
char t[1001],s[1001];
gets(t);
gets(s);
n2=strlen(s);
n1=strlen(t);
for(i=0,j=0;i<n1&&j<n2;)
{
if(t[i]==s[j])
i++,j++;
else i++;
}
if(j==n2) printf("1");
else printf("0");
return 0;
}