字符串剖析

一、string是一个特殊的容器:

  它包含的只有字符,支持一些容器的操作,但不是全部。支持的操作包括索引,而且字符串类型提供一个迭代器,类似于vector类型的迭代器。因此,很多适用于vector的操作都适用于字符串。

  1、将一行所以才故意分成单个单词,这些单词通过空白符来分隔(空格,制表符,退格符,或者是行终止符)。如果我们直接从输入读取,可以直接获取到,字符串的输入操作符就是这样执行;但是如果直接按行读取整行输入,并且检测其中每个单词。

    接口代码:

    

#include <stdexcept>
#include <algorithm>
#include <cctype>
#include <vector>

using std::vector;
using std::string;

vector<string> spilt(const string& s)
{
    vector<string> ret;
    string_size i = 0;
    while (i != s.size())
    {
        while (i != s.size() && isspace(s[i]))
        {
            ++i;
        }
        string_size j = i;
        while (j != s.size() && isspace(s[i]))
        {
            ++j;
        }
        if (i != j) {
            ret.push_back(s.substr(i, j-i));
            i = j;
        }
    }
    return ret;
}

检测split函数代码:

int main()
{
    string s;
   // read and  split each line of input
    while (getline(cin, s)) {
        vector<string> v = split(s);
        
        //write word into v
        for(vector<string>::size_type i = 0; i != v.size(); ++i) {
           cout << v[i] <<endl;
        }
    } 
    return 0;
}

    

  

posted @ 2021-02-17 10:48  OFSqueque  阅读(42)  评论(0编辑  收藏  举报