最开始的错误代码:(提交的编译器说是段错误,咱也不懂,呜呜呜呜)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<map>
#include<vector>
using namespace std;
//typedef long long ll;
const int N=5;
int main()
{
string s;
cin>>s;
int flag=0;
int mark;
for(int i=0;i<s.size()-2;i++)
{
if(s[i]=='B'||s[i]=='b')
{
if(s[i+1]=='o'||s[i+1]=='O')
{
if(s[i+2]=='B'||s[i+2]=='b')
{
flag=1;
cout<<i<<endl;
break;
}
}
}
}
if(flag==0)
cout<<"-1"<<endl;
return 0;
}
正确代码1:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<map>
#include<vector>
using namespace std;
//typedef long long ll;
const int N=5;
int main()
{
string s;
cin>>s;
for(int i=0;i<s.size();i++)
{
s[i]=toupper(s[i]);//把所有字符变成大写,tolower则是把所有字符变成小写
}
int mark;
if((mark=s.find("BOB"))!=string::npos)//寻找出现第一次出现BOB时,第一个B的下标
cout<<mark<<endl;
else
cout<<"-1"<<endl;
return 0;
}
正确代码2:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<map>
#include<vector>
using namespace std;
//typedef long long ll;
const int N=5;
int main()
{
string s;
cin>>s;
for(int i=0;i<s.size();i++)
{
s[i]=toupper(s[i]);
}
int flag=0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='B'&&s[i+1]=='O'&&s[i+2]=='B')
{
cout<<i<<endl;
flag=1;
break;
}
}
if(flag==0)
cout<<"-1"<<endl;
return 0;
}
//感觉就是因为没有开始把字符统一变成正负大小写才错的