读书人

关于C++字符串排序解决方法

发布时间: 2012-04-28 11:49:53 作者: rapoo

关于C++字符串排序
为了让大家看的速度而且明白。我专门写了一个很简单的程序来说明问题。
#include<string>
#include<iostream>
using namespace std;
void main()
{
string name="what's up dude";

int i = 0;
while(name[i]!='\0')
{
cout<<name[i];
if(name[i++]==' ')
{
cout<<endl;
}
}

}
这个程序是输出这个字符串,并且一行显示一个单词。如果直接cout<<name;就会显示在一行。
我想问的问题是如何给字符串name里面的单词按照单词长短排序(从小到大);输出结果为
up
dude
what's
请问各路高手有没有简单的方法实现这个功能。希望对一大段文字同样适用的程序。谢谢

[解决办法]

C/C++ code
#include<string>#include<iostream>#include<sstream>#include<vector>#include<algorithm>using namespace std;bool cmp(string& a, string& b){    if(a.size() < b.size())    {        return true;    }    else    {        return false;    }}void main(){    string name="what's up dude";    istringstream stream(name);    string word;    vector<string> vc;    while(stream>>word)    {        vc.push_back(word);    }     sort(vc.begin(), vc.end(), cmp);    for(int i = 0; i < vc.size(); ++i)    {        cout<<vc[i]<<endl;    }} 

读书人网 >C++

热点推荐