洛谷【入门5】字符串-P1308 统计单词数

  1. 标签:模拟字符串NOIp普及组高性能
  2. 知识点:getline输入字符串
  3. 题目:

  4.  

    AC代码:

    #include<iostream>
    #include<string>
    #include<cstring>
    using namespace std;
    int main()
    {
        string a,b;
    	int i,cnt=0,begin;
    	getline(cin,a);   //字符串含有空格输入,不可以用cin,否则to me只能读到to 
            getline(cin,b);
    	for(i=0;i<=b.length()-a.length();i++){
    		int j;		//关键:局部定义+break:判断一个单词
    		for(j=0;j<a.length();j++){
    			if(a[j]!=b[i]&&a[j]+32!=b[i]&&a[j]-32!=b[i])break;//大小写相差32
    			if(i>0&&b[i-1]!=' ')break;  //优化:不是单词开头就结束 	
    		}
    		//单词长度匹配,后面是空格或者句末 
    		if(j==a.length()-1&&(b[j+i+1]==' '||j+i==b.length())){
    			cnt++; 
    			if(cnt==1)begin=i;
    		}
    	}
    	if(cnt>0)cout<<cnt<<" "<<begin<<endl;
    	else cout<<-1<<endl;
        return 0;
    }
      

    不明白的地方欢迎大家指出

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值