题干解读:给出一个字串,要求在输入的一个字符串中找到该字串第一次出现的位置

需要特别注意的是:该字符串在匹配时不区分大小写。

解题思路:采用遍历的方法遍历输入的字符串s,看是否能够匹配字串的首个字符(3种情况:1.大小写相同;2.输入的字符为小写,字串为大写,3.输入的为大写,字串为小写;采用||将三种情况链接起来),如果不能,则跳转到下一个字符,如果能,则进一步判断是否能匹配字串的下一个字符,,如果都能匹配,则将索引修改,跳出循环并输出索引的值.

#include <iostream>
#include<string>
using namespace std;

int main() {
    string s;
    cin>>s;
    string a = "Bob";

    int index=-1;//索引位置
    for(int i=0;i<s.length();i++){
        if(s[i]==a[0] || s[i]-'A'+'a' == a[0] || s[i]+'A'-'a' == a[0]){
            for(int j=1;j<a.length();j++){
                if(s[i+j]!=a[j] && s[i+j]-'A'+'a'!=a[j] && s[i+j]+'A'-'a'!=a[j]){
                    break;
                }
                if(j==a.length()-1){
                    index = i;
                }
            }
            if(index!=-1){
                break;
            }
        }
    }
    cout<<index;
}