如题,题解第一篇在如下输入数据下是错误的
question
to be or not to be is a question
#include<bits/stdc++.h>
using namespace std;
string dan,ci,s;
int cur=-1,ans;
int main()
{
cin>>ci;
for(int i=0;i<ci.size();++i)ci[i]=tolower(ci[i]);
getchar();
getline(cin,s);
for(int i=0;i<s.size();++i)s[i]=tolower(s[i]);
for(int i=0;i<s.size();++i)
{
if(s[i]==' '){
if(dan==ci){
ans++;
if(cur==-1)cur=i-ci.size();
}
dan="";
}
else dan+=s[i];
}
if(ans==0)printf("-1");
else printf("%d %d",ans,cur);
return 0;
}
原因是第二行输入数据末尾没有空格,导致在程序执行中没有判断最后一个单词和所给单词是否相同