求助cin边读边处理, 样例能过, 最后只过了2个点...
查看原帖
求助cin边读边处理, 样例能过, 最后只过了2个点...
925190
_DANCER_楼主2023/2/13 19:32
#include<iostream>
#include<string>
using namespace std;

string change(string s)//转换小写
{   
    int len=s.length();
    string o="";
    for(int i=0;i<len;i++)
    {
        if(s[i]>='A'&&s[i]<='Z')
            o+=s[i]-'A'+'a';
        else o+=s[i];
    }
    return o;
}

int main()
{   
    freopen("D:\\System_folders\\Desktop\\C++(g++)\\packet\\P1308.in","r",stdin);
    string check,s;
    cin>>check;
    check=change(check);
    int first=0,ans=0;
    bool flag=0;//标记第一次
    while(cin>>s)
    {   
        if(!flag) first+=s.length()+1;//计算第一次位置
        if(change(s)==check)
        {
            if(!flag)
            {
                flag=1;
                first-=s.length()+1;//如果第一次出现了, 需要把减多加的回去
            }
            ans++;//记录总次数
        }
    }
    if(ans==0) cout<<-1;//输出
    else cout<<ans<<" "<<first;
    return 0;
}
2023/2/13 19:32
加载中...