将字符串拆成单词,并算最长的长度
#include <vector> #include <string> #include <cctype> #include <iostream> using namespace std; //根据空格等将字符串,拆分成多个单词。 vector<string> split(const string& s) { vector<string> ret; typedef string::size_type string_size; 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[j])) { ++j; } if(i!=j) { ret.push_back(s.substr(i,j-i)); i=j; } } return ret; } //求上述vector<string>中最长的长度 string::size_type GetmaxLen(const vector<string>& v) { string::size_type maxLen=0; for(vector<string>::const_iterator i=v.begin();i!=v.end();++i) { maxLen=max(maxLen,(*i).size()); } return maxLen; } //用一个“*”组成的矩形,把上面的vector<string>装框! vector<string> Load(const vector<string>& v) { vector<string> ret; string::size_type maxLen=GetmaxLen(v); string border(maxLen+4,'*'); ret.push_back(border); //top for(vector<string>::size_type i=0;i!=v.size();++i) { ret.push_back("* "+v[i]+string(maxLen-v[i].size(),' ')+" *"); } ret.push_back(border);//bottom return ret; }
人生无处不代码,没有代码不人生。