首页 > 代码库 > C++primer 9.49

C++primer 9.49

题目:如果一个字母延伸到中线之上,如d或f,则称其有上出头部分(ascender)。
如果一个字母延伸到中线之下,如p或g,则称其有下出头部分(descender)。
编写程序,读入一个单词文件,输出最长的既不包含上出头部分,也不包含下出头部分的单词。

 

#include<iostream>#include<string>#include<vector>#include<fstream>using namespace std;void find_max(vector<string>&vec){	string s1 = "bdfhjlkpq";	vector<string>::iterator it1 = vec.begin();	string s = "";	unsigned max = 0;	while (it1 != vec.end())	{		if ((*it1).find(s1)==string::npos)			if (max < (*it1).size())			{				max = (*it1).size();				s = *it1;			}		it1++;	}	cout << s << endl;}int main(){	ifstream in("words.txt");	string word;	vector<string>vec;	while(in >> word)	   vec.push_back(word);		find_max(vec);	return 0;}

  

C++primer 9.49