用c++来实现:输入1行字符串,将字符串中的字符按升序排序后输出, 要求排序过程通过一个函数实现

 我来答
wovie89
推荐于2017-10-04 · TA获得超过2496个赞
知道小有建树答主
回答量:800
采纳率:77%
帮助的人:380万
展开全部
#include<iostream>
#include <string>
#include<windows.h>
using namespace std;
void sort(string& a)//定义排序函数,用冒泡排序法
{
int m = a.length();
int n = m-1;
for(int i=0 ; i < n; i++)
{
for(int j=0;j< m-1;j++)
{
if(a[j]>a[j+1])
{
char temp;
temp = a[j];
a[j] = a[j+1];
a[j+1]=temp;
}

}
m--;
}

}
int main()
{
string a;
cout<<"输入字符串a:"<<endl;
cin>>a;
sort(a);
cout<<"排序结果为:"<<a<<endl;
system("pause");
return 0;

}
xnd09
2013-05-04 · TA获得超过201个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:93.5万
展开全部
假定一行就是一个字符串
按第一个字母从小到大排序,第一个字母相同则看第二个

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
string s;
vector<string> a;
fstream fin("1.txt", ios::in),fout("3.txt", ios::out);
if(!fin)
{
cerr << "cannot open!" << endl;
return -1;
}
while(!fin.eof())
{
getline(fin,s,'\n');
a.push_back(s);
}
sort(a.begin(),a.end());
for(vector<string>::iterator t = a.begin(); t != a.end(); t++)
fout << *t << endl;
fin.close();
fout.close();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式