弟弟的混乱代码(易理解 大概
思路: 循环b(被找的字符串),遇空格比较两空格间的长度是否与a(需要查找的字符)相等;不相等继续循环;相等比较内容是否相同(倒数比较,不一样直接退出 ,直到比较到第一个都相等时 num++)。
#include <iostream>
#include <bits/stdc++.h>
#include <cstring>
using namespace std;
int main()
{
string a;//找
string b;//被找
getline(cin,a);
getline(cin,b);
int lena = a.length();
int lenb = b.length();
int k = -;//上一个空格位置
int perlenb = ;//每一个长度
int num = ;
int first = -;
for(int i=;i<lena;i++)
if(a[i]>='A' && a[i]<='Z')
a[i]+=;
for(int j=;j<lenb;j++)
if(b[j]>='A' && b[j]<='Z')
b[j]+=;
//大小写转换完成
for(int i=;i<lenb;i++)
{
if(i== && b[i]==' ') {i++;k++;}
if(b[i]==' ')
{
perlenb = i-k-;
if(lena==perlenb)
{
for(int j=lena-;j>=;j--)
{
if(a[j]!=b[i+j-lena])
break;
else if(j==)
{
num++;if(first<){first=i-lena;}
}
}
}
k=i;
}
if(i==lenb-)
{
if(lena==perlenb)
{
for(int j=lena-;j>=;j--)
{
if(a[j]!=b[i+j-lena])
break;
num++;if(first<){first=i-lena;}
}
}
k=i;
}
}
if(first==-) cout<<first<<endl;
else cout<<num<<" "<<first<<endl;
return ;
}