字符串剖析
一、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; }