程序1.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1("fhAsiSEFrh");
string::iterator first = str1.begin();
while(first != str1.end())
{
if(isupper(*first) )
{
str1.erase (first);
--first;
}
++first;
}
cout << str1 << endl;
return 0;
}
程序2.
#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 separators(" \t:,\v\r\n\f");
string word;
string::size_type maxLen,minLen,wordLen,count=0;
vector<string> longestWords,shortestWords;
string::size_type startPos=0,endPos=0;
while((startPos=sentence.find_first_not_of(separators,endPos))!=string::npos){
++count;
endPos=sentence.find_first_of(separators,startPos);
if(endPos==string::npos)
wordLen=sentence.size()-startPos;
else
wordLen=endPos-startPos;
word.assign(sentence.begin()+startPos,
sentence.begin()+startPos+wordLen);
if(count==1) {
maxLen=wordLen;
minLen=wordLen;
longestWords.push_back(word);
shortestWords.push_back(word);
}
else{
if(wordLen>maxLen){
maxLen=wordLen;
longestWords.clear();
longestWords.push_back(word);
}
else if(wordLen==maxLen)
longestWords.push_back(word);
if(wordLen<minLen){
minLen=wordLen;
shortestWords.clear();
shortestWords.push_back(word);
}
else if(wordLen==minLen){
shortestWords.push_back(word);
}
}
}
cout << "word amount: " << count << endl;
vector<string>::iterator iter;
cout << "longest word(s):" << endl;
iter=longestWords.begin();
while(iter!=longestWords.end())
cout << *iter++ << endl;
cout << "shortest word(s):" << endl;
iter=shortestWords.begin();
while(iter!=shortestWords.end())
cout << *iter++ << endl;
return 0;
}