查找最长和最短单词
来源:互联网 发布:淘宝妈妈装模特 编辑:程序博客网 时间:2024/06/05 18:37
//============================================================================// Name : stringExam04.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include <iostream>#include <string>#include <vector>using namespace std;int main(){string line1="We were her pride of 10 she named us:";string line2="Benjamin, Phoenix, the Prodigal";string line3="and perspicacious pacific Suzanne";string sentence=line1 + ' ' + line2 + ' ' + line3;string::size_type pos3=0;int total=0;vector<int> ivec; for(int i=0;i<sentence.size();i++) { if(sentence[i]!=' ' && (sentence[i+1]==' ' || sentence[i+1]=='\0')) { ivec.push_back(i); total+=1; } } vector<string> svec; int max=*ivec.begin()+1; int min=max; svec.push_back(sentence.substr(0,max)); for(vector<int>::iterator j(ivec.begin()+1);j!=ivec.end();j++) { svec.push_back(sentence.substr(*(j-1)+2,*j-*(j-1)-1)); if(max<(*j-*(j-1)-1)) { max=*j-*(j-1)-1; } if(min>(*j-*(j-1)-1)) { min=*j-*(j-1)-1; } } cout << "the total of the words is :" << total << endl; printf("the max length of the words are:\n");for(vector<string>::iterator s(svec.begin());s!=svec.end();s++){if((*s).size()==max){cout << *s << endl;}}printf("the min length of the words are:\n");for(vector<string>::iterator s(svec.begin());s!=svec.end();s++){if((*s).size()==min){cout << *s << endl;}} //cout << max << " " << min << endl;return 0;}