#include <cctype>
#include <iostream>
#include <string>
using namespace std;
int Where(string num,int &n)//没有引用num,为了不改变原输入(虽然本题都行)
{
    for(int i=0;i<n;i++)num[i]=tolower(num[i]);//全部转换为小写,用tolower是为了可观性
    return num.find("bob");//直接用<string>内置查找,find没找到会返回-1(string是字符串的强力工具)
}//建立小写字符串副本,再查询bob就不用对bob分情况讨论了
int main()
{
    string num;cin>>num;
    int n=num.size();//同样来于string,等同于length,获取字符串长度(不含 null 终止符)
    cout<<Where(num,n);
    return 0;
}//主函数建立string字符串,输入,然后直接用建立的Where函数查找bob(不分大小写)即可
//反对万能头!

支持模块化,以及反对万能头QwQ

<string>

string s; //创建空字符串

string s1("hello"); string s2(s1); //拷贝已有字符串

string s("hello"); //从 C 风格字符串创建

string s(5, 'a'); //创建包含 5 个 'a' 的字符串

string s1("hello world"); string s2(s1, 6, 5); //从 s1 的第 6 个字符开始,取 5 个字符

char c = s[0]; //直接访问指定位置字符(无边界检查)

char c = s.front(); //获取第一个字符(C++11+)

char c = s.back(); //获取最后一个字符(C++11+)

s += " world"; //追加字符串

s.push_back('!'); //追加单个字符

s.insert(5, " beautiful"); //在指定位置插入字符串

s.erase(5, 10); //从位置 5 开始删除 10 个字符

s.replace(0, 5, "Hi"); //替换指定位置的字符串

s.clear(); //清空字符串内容

s.resize(10, 'x'); //调整字符串大小,不足部分用 'x' 填充

s.size()或s.length() //获取字符串长度(不含 null 终止符)

s.empty(); //判断字符串是否为空

s.find("world"); //查找子串首次出现位置

s.rfind("world"); //从后往前查找字符首次出现位置

s.find_first_of("aeiou"); //查找字符集中任一字符首次出现位置

int num = stoi(s); //将字符串转为 int 类型(C++11+)

long num = stol(s); //将字符串转为 long 类型(C++11+)

double num = stod(s); //将字符串转为 double 类型(C++11+)

string s = to_string(123); //将数字转为字符串(C++11+)