zoukankan      html  css  js  c++  java
  • 洛谷P1765 手机_NOI导刊2010普及(10) 关于cin和getline的一些区别 以及一些STL

    一. cin>>s:
    cin>>是由两部分构成的,cin和>>,其中cin是输入流istream类的一个对象,隶属于iostream函数库
    而>>则是运算符:这个运算符的作用是:从左侧cin对象中读取数据,并将它赋给右侧的运算对象.
    1.>>运算符是由右侧的数据类型定义的,右侧的数据类型不同,重载的>>也不同
    2.>>运算符是向左结合的
    3.>>运算符从cin对象中读取数据时:如果遇到空格或者换行符号,那么这次读取数据结束,将空格之前的数据赋给右侧的运算对象,相应的,读取的第一个符号,也是空格或者换行符之后的第一个有效数据
    4.一个>>运算符一次只能读取一次(一个)数据,要想读取多个数据,只能再加>>运算符
    二.getline()
    1.它是String对象定义的,只能string对象用(当然<<也是String对象重载的)
    2.**getline遇到空格不结束!!!也就是说它可以从cin对象中读取空格!!**当然,遇到换行仍然结束,但是他也会读取换行符,但是读取换行符之后后停止读取,然后将读取的数据(此时包括换行符)赋给右侧的运算对象(x,见下),赋值的时候,丢弃换行符!!!,也就是说换行符不存到x中
    getline的返回值是流参数和cin>>表达式一样,返回cin>>
    3.getline是一个函数的形式:
    **总结:使用getline必须使用string定义的字符串,并且cin不能读空格或者换行符。但是getline不受影响
    ————————————————
    版权声明:本文为CSDN博主「birate_小小人生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u014183456/article/details/88323575

     

    代码1

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int i,ans=0;
        string s;
        int num[26]={1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
        getline(cin,s);                     //如果改成cin>>s;  则会出现错误
        for(i=0;i<s.length();i++){
            if(s[i]>='a'&&s[i]<='z'){
      ans+=num[s[i]-'a'];}
            if(s[i]==' '){
      ans++;}
        }
        cout<<ans;
        return 0;
    }

     

     

    代码2

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
     int ans=0;
     map<char,int>ma;      //定义map,把char类型转化成int               此处不能用string,因为string的+不是数字相加!!
        ma['a']=1;ma['b']=2;ma['c']=3;ma['d']=1;ma['e']=2;
        ma['f']=3;ma['g']=1;ma['h']=2;ma['i']=3;ma['j']=1;
        ma['k']=2;ma['l']=3;ma['m']=1;ma['n']=2;ma['o']=3;
        ma['p']=1;ma['q']=2;ma['r']=3;ma['s']=4;ma['t']=1;
        ma['u']=2;ma['v']=3;ma['w']=1;ma['x']=2;ma['y']=3;
     ma['z']=4;ma[' ']=1;
     string word;
        getline(cin,word);
        for(int i=0;i<word.length();i++)
        {
            ans=ans+ma[word[i]];
        }
        cout<<ans<<endl;
    }

  • 相关阅读:
    applycationContext.xml文件配置信息
    原生json的异步操作
    解析xm文件
    druid(德鲁伊)连接池的DataSourceUtils的写法及原生写法
    MYSQL的JDBCUtils的写法
    模拟服务器
    关于函数式接口
    浅谈树和二叉树
    &和&&的区别
    全排列问题(c语言实现)
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11621664.html
Copyright © 2011-2022 走看看