题干解读:给出一个字串,要求在输入的一个字符串中找到该字串第一次出现的位置
需要特别注意的是:该字符串在匹配时不区分大小写。
解题思路:采用遍历的方法遍历输入的字符串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;
}

京公网安备 11010502036488号