50pts求大佬调下
查看原帖
50pts求大佬调下
1376660
JX_CSP_2024楼主2024/10/15 13:33
#include<bits/stdc++.h>
using namespace std;
string wd,sen;
string up_wd,lo_wd;//大写及小写开头的
int cnt=0,ans;
int main()
{
    getline(cin,wd);
    getline(cin,sen);
    up_wd=(char)toupper(wd[0])+wd.substr(1,wd.size()-1);//第1个字母大写形式+后面部分
    lo_wd=(char)tolower(wd[0])+wd.substr(1,wd.size()-1);//同上
    while(1==1)
    {
        int pos=sen.find(wd);
        int posu=sen.find(up_wd);
        int posl=sen.find(lo_wd);
        int f=0;
        if(pos>=0 && pos<sen.size())//在0到sen.size()范围内
        {
            f=1;
            for(int i=pos; i<pos+wd.size(); i++)//先替换成'$'
            {
                sen[i]='$';
            }
        }
        if(posl>=0 && posl<sen.size())//同上
        {
            f=1;
            for(int i=posl; i<posl+wd.size(); i++)
            {
                sen[i]='$';
            }
        }
        if(posu>=0 && posu<sen.size())//同上
        {
            f=1;
            for(int i=posu; i<posu+wd.size(); i++)
            {
                sen[i]='$';
            }
        }
        if(pos>=0 && pos<sen.size() && (pos==0 && sen[pos+wd.size()]==' ' || sen[pos-1]==' ' && sen[pos+wd.size()]==' '))//判断是否是独立单词
        {
            cnt++;
            if(cnt==1)
            {
                ans=pos;
            }

        }
        else if(posl>=0 && posl<sen.size() && (posl==0 && sen[posl+wd.size()]==' ' || sen[posl-1]==' ' && sen[posl+wd.size()]==' '))//同上
        {
            cnt++;
            if(cnt==1)
            {
                ans=posl;
            }
        }
        else if(posu>=0 && posu<sen.size() && (posu==0 && sen[posu+wd.size()]==' ' || sen[posu-1]==' ' && sen[posu+wd.size()]==' '))//同上
        {
            cnt++;
            if(cnt==1)
            {
                ans=posu;
            }
        }
        else if(f==0)
        {
            break;
        }
    }
    if(cnt==0)
    {
        cout<<"-1";
    }
    else
    {
        cout<<cnt<<' '<<ans;
    }
    return 0;
}
2024/10/15 13:33
加载中...