题解 | #字符串排序#
字符串排序
http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
include
include<string.h>
include
using namespace std;
int is_letter(char c)
{
char r;
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
return 1;
}
return 0;
}//判断是否为字母
int main()
{
string tem;
string str = {};
string s;
while(cin>>tem)
{
char c = getchar();
if(c == ' ')
str = str+' '+tem;//遇到空格,字符串拼接
if(c == '\n')
{
str = str+' '+tem;
s = str;//一行字符串存储位置
str.clear();
s.erase(s.begin());//第一个空格去掉 vector<int> vec; for(int i = 0;i<s.size();i++) { if(is_letter(s[i])) vec.push_back(i);//记下字母的位置 } for(int i = 0;i<vec.size();i++) { for(int j = 0;j<vec.size()-i-1;j++) { char t1 = s[vec[j]]; char t2 = s[vec[j+1]]; if(t1>='a'&&t1<='z') t1 = t1-32; if(t2>='a'&&t2<='z') t2 = t2-32; if(t1>t2) { char t = s[vec[j]]; s[vec[j]] = s[vec[j+1]]; s[vec[j+1]] = t; } } }//冒泡排序 cout<<s<<endl; } }
}