很久没来了,现在C++板块弄的蛮不错的...大家继续加油. 路过顺便挑个简单的做做 呵呵
-----------------------------------------------------------------------------------------------------
17. 编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子
中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度
相同。例如:
输入:
THE PRICE OFBREAD IS ¥1 25 PER POUND
输出:
ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU
并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。
#include<iostream>
#include<string>
#include<cctype>
#include<algorithm>
using namespace std;int main()
{
string str,s;
int num[60]={0};
int j=1;
getline(cin,str);
for(int i=0; i<str.size(); i++) //把字母字符存到s中
{
if(isalpha(str[i])) s+=str[i];
else
{
num[j++]=i; //记录非字母字符的位置
num[0]++; //记录非字母字符的个数
}
}sort(s.begin(),s.end()); //排序A~Z或a~z
if(s.size()!=str.size())
for(j=1; j<=num[0]; ++j)
s.insert(num[j],str.substr(num[j],1)); //调整字符串cout<<endl<<s<<endl;
return 0;
}
[此贴子已经被作者于2007-6-17 10:38:17编辑过]