• 字符串读取


    有两种方法可以读C++字符串:使用提取操作符(>>)和getline函数。
    (1)字符串提取操作符:
    首先,它跳过前导空白字符,然后提取所有邻近的非空白字符。当发现空白字符时,
    它就停下来。终止空白字符被留在输入流中.
    提取操作符可以用来从键盘(cin流)或者使用开放式文件流从文件读数据。例如,要把一个值读入字符串
    对象str1,你只需要编写下面的语句之一。
    cin>>str1; or fsIn>>str1;

    (2)getline 函数
    cin.getline(字符指针(char*),字符个数N(int),结束符(char));
    cin的getline需要这样用: cin.getline(s,50,' ');
    其中s需要时char *或unsigned char *,50表示读入大小(最大),' '表示分隔符,可以省略,默认就是这个,如果是' ',则表示空格作为截止符

    getline(cin,s,' '),s需要是string,需要引入string头文件,std::string空间引入,' '可省略,如果是' ',则表示空格作为截止符

    cin.getline适合你知道读入大小,固定char数组,速度快

    getline(cin,s)不需要指定大小,但速度慢、生成的文件大,适合偷懒用

    //读取一个姓名字符串,其中名和姓由逗号分开,然后打印这个姓名。
    #include<iostream>
    #include<iomanip>
    #include<string>
    using namespace std;
    
    void main()
    {
      cout<<"Enter a name in the form<last,first>:
    ";
      char lastName[20];
      cin.getline(lastName,20,',');
    
      char firstName[20];
      cin.getline(firstName,20,'
    ');
    
      cout<<"Here is your name:
    "<<firstName<<' '<<lastName<<"
    ";
     
    }
    

      

    #include<iostream>
    #include<sstream>
    using namespace std;
    
    void main(void)
    {
    /*	char s[100];
    	cin.getline(s,100,'
    ');//cin.getline(s,100);//也可以,默认都是'
    '*/
    
    	string s;
    	cin.clear();
    	getline(cin,s);
    	cin.clear ();
    
    	cout<<s<<endl;
    
    	string tempStr;
    	istringstream in(s);//===================?????????????????????//
    /*	istringstream in;
    	in.str(s);
    */
    	
    	while(in>>tempStr)
    		cout<<tempStr<<" length is "<<tempStr.size()<<endl;
    	in.clear();
    
    
    	
    }
    

      

  • 相关阅读:
    substring(x)和substring(x,y)的用法
    js 判断字符串中是否包含某个字符串
    js如何将纯数字字符串转换为long型
    union和union all的区别
    JavaScript 中 var 和 let 和 const 关键字的区别
    JS操作文件
    java 字符串和集合互相转换
    关于sql中in 和 exists 的效率问题,in真的效率低吗
    sql 同一张表查询不同数据合并之后关联查询
    Android input输入框 移动页面input手机键盘中的“搜索”按键
  • 原文地址:https://www.cnblogs.com/sjw1357/p/3836043.html
Copyright © 2020-2023  润新知