问题标题: 酷町堂:1373

0
0
史亚东
史亚东
新手守护
新手守护
#include<iostream>
using namespace std;
string a,b;
int i,cnt,ans,f;
int main(){ 
    cin>>a;
    while(cin>>b){
        if(a.size()==b.size()){
            for(int i=0;i<a.size();i++){
                if(a[i]!=b[i]&&a[i]!=char(b[i]-32)){
                    break;
                }
            }
            cnt++;
            if(cnt==1&&f==0){
                f=1;
                i=ans;
            }
        }
        ans++;
    }
    cout<<cnt<<" "<<i;
    return 0;
}

https://ke.codingtang.com/#/problem/problemSub?id=1373

题目描述

编程实现查找单词的功能,快速找到文章中单词所在的位置,以及统计出指定单词出现的次数。

具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章

中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。

输入样例#1:
To
to be or not to be is a question
输出样例#1:
2 0

输入样例#2:
to
Did the Ottoman Empire lose its power at that time
输出样例#2:
-1

1≤ 单词长度≤20。

1≤ 文章长度≤1,0000

输入描述 Input Description

输入格式:
包含2 行。
第1 行为一个字符串,其中只含字母,表示给定单词;
第2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

输出描述 Output Description

输出格式:
只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数-1。

样例输入 Sample Input

not to be or Not to be is a question

样例输出 Sample Output

1 3

0分代码


1
0
史亚东
史亚东
新手守护
新手守护
#include<iostream>
using namespace std;
string a,b;
int i,cnt,ans,f;
int main(){ 
    cin>>a;
    while(cin>>b){
        if(a.size()==b.size()){
            for(int j=0;j<a.size();j++){
                if(a[j]!=b[j]&&a[j]!=char(b[j]-32)){
                    break;
                }
            }
            cnt++;
            if(cnt==1&&f==0){
                f=1;
                i=ans;
            }
        }
        ans++;
    }
    cout<<cnt<<" "<<i;
    return 0;
}

改了之后还是0

0
赵逸凡
赵逸凡
初级启示者
初级启示者

字符串数组了解一下

0
0
0
申逸晨
申逸晨
修练者
修练者
  • #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<string> using namespace std; int main(){ string a; cin>>a; for(int i=0;i<a.size();i++){ if(a[i]>='a' && a[i]<='z') a[i]-=32; } cin.get(); string s,x; getline(cin,s); s+=' '; for(int i=0;i<s.size();i++){ if(s[i]>='a' && s[i]<='z') s[i]-=32; } int cnt=0,j=0,f=0; for(int i=0;i<s.size();i++){ if(s[i]==' '){ if(x==a){ cnt++; if(cnt==1) f=j; } j++; x.clear(); } else x+=s[i]; } if(cnt==0) cout<<-1; else cout<<cnt<<" "<<f; return 0; }
  • 望结贴!!!

 

0
0
我要回答