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