求助
在本地编译通过
输出答案是对的
但是提交显示RE(0ms,0B)
代码如下
#include<cstdio>
#include<cstring>
int main(){
//读取并处理子串
char temp[100];
scanf("%s",temp);
for(int i=0;i<strlen(temp);i++)
{
if(temp[i]>=65&&temp[i]<=90)
{
temp[i]+=32;
}
}
//printf("%s\n",temp);
//读取并处理句子
char sentence[100000];
int ii=0;
char c;
c=getchar();//此处读取为换行键
//printf("c=%c\n",c); 用于检查c的输入
//printf("c=%d\n",(int)c); 显示为10,ASCII对照为换行
while((c=getchar())!='\n')
{
sentence[ii++]=c;
//printf("c=%c\n",c);
}
//printf("%d\n",ii);
sentence[ii]='\0';
for(int i=0;i<strlen(sentence);i++)
{
if(sentence[i]>=65&&sentence[i]<=90)
{
sentence[i]+=32;
}
}
//printf("%s\n",sentence);
//查找对应字符串
int place=-1;
int placestop=0;
int count=0;
for(int i=0;i<strlen(sentence)-strlen(temp);i++)//对照大字符串
{
int checker=1;
for(int j=0;j<strlen(temp);j++)//对照小字符串
{
if(sentence[i+j]!=temp[j])
{
checker=0;
break;
}
}
if(checker==1)
{
//printf("i=%d,sentence[i]=%c\n",i,sentence[i]);
if(i==0)
{
if(sentence[i+strlen(temp)]!=' ')
{
checker=0;
}
}
else
{
if(sentence[i-1]!=' '||sentence[i+strlen(temp)]!=' ')
{
checker=0;
}
}
}
if(checker==1&&placestop==0)
{
place=i;
//printf("place=%d\n",place);
placestop=1;
count++;
//printf("count=%d\n",count);
}
else if(checker==1)
{
count++;
//printf("count=%d\n",count);
}
}
if(place==-1)
{
printf("-1\n");
}
else
{
printf("%d %d\n",count,place);
}
return 0;
}
实在想不通该怎么办了……