#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{
char s1[1000];
char s2[1000000];
// gets(s1);
// gets(s2);
fgets(s1,1000,stdin);
fgets(s2,1000000,stdin);
int len1,len2,i,j,ans=0,d;
len1=strlen(s1);
len2=strlen(s2);
for(i=0;i<len2;i++)
{
for(j=0;j<len1;j++)
{
if(toupper(s2[i+j])!=toupper(s1[j]))
break;
if(i>0&&s2[i-1]!=' ')
break;
}
if(j==len1&&(s2[i+j]==' '||i+j==len2))
{
ans++;
if(ans==1)
d=i;
}
}
if(ans)
printf("%d %d",ans,d);
else
printf("-1");
return 0;
}
以上代码,是我在网络上找到的,就把输入那里改了一下。之前发现一本通已经不能用gets输入字符串了,就换了scanf("%[^\n]",s1);或者是fgets(s1,1000,stdin);这两种方式,但是这段代码提交上去只正确了两个测试点,是为什么呢?