用c++ sort()给字符串排序

时间:2023-01-07 13:57:13
定义了一个字符串数组 string str[];
往里面存入二十个英文单词
然后按单词在字典里的顺序排序 用sort()
该怎么写。。先谢谢了
我有点菜 请大家说的详细一点

10 个解决方案

#1


这样的东西,用STL都可以了。

#2


http://www.cplusplus.com/reference/algorithm/sort/

自己看一下,答案在里面了,如果还不会我也无语了。

#3


string s[21];
for(int i=0;i<20;i++) cin>>s[i];
sort(s,s+20);

#4


用c++ sort()给字符串排序
引用 3 楼 liao05050075 的回复:
string s[21]; 
for(int i=0;i <20;i++) cin>>s[i]; 
sort(s,s+20);

#5


基本的各种排序算法会吗?

会的话很好办啊
随便选种排序算法
按string的比较来判断大小啊
跟一般的排序没多大区别的

不会的话
还是建议你去看看数据结构与算法分析的书先
把内排序那章的一些排序方法看一遍就应该会了的

#6


#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

int main()
{
const unsigned int size = 4;
string abc[size] = {
"123",
"789",
"456",
"022"
};

sort(abc,abc+size);

for(int i=0;i<size;i++)
cout << abc[i] << endl;
}

#7


引用 3 楼 liao05050075 的回复:
string s[21]; 
for(int i=0;i <20;i++) cin>>s[i]; 
sort(s,s+20);

直接这样就行吗??
不用写cmp函数了么 ~~

#8


string 类提供了operator<

#9


第一次发帖,搞了3年JAVA,感觉能力还可以,现在公司要我搞C++,

以前没C++知识,现在从头来啊郁闷的,这几天看了下C++的STL,貌似

楼主可以这样写:

         int N;
string [N] s;
for (int i=0;i<s.length();i++)
{
cin>>N;
cin>>s[i];
sort(s.begin(),s.end());
}



return 0;


话说做惯了JAVA看C++很别扭啊,string的S还小些,继承用:,
话说我建了个StringBuffer 想调用下append()方法,结果发现没有,
String也是居然没split()方法,另外StringBuffer在C++中是stringbuf,
总之是各种纠结啊,与楼主共勉。

#10


引用 2 楼 hellodan 的回复:
http://www.cplusplus.com/reference/algorithm/sort/

自己看一下,答案在里面了,如果还不会我也无语了。
麻烦你看一下人家的要求好不好
这是c语言版的:
int compare(const void*elem1,const void *elem2)
{return(strcmp((char*)elem1,(char*)elem2));}
qsort(str,size,len,compare);//str为char类型二维数组如str[1000][9], 那么,size是字符串的数目(1000), len是字符串的最长长度(9)

#1


这样的东西,用STL都可以了。

#2


http://www.cplusplus.com/reference/algorithm/sort/

自己看一下,答案在里面了,如果还不会我也无语了。

#3


string s[21];
for(int i=0;i<20;i++) cin>>s[i];
sort(s,s+20);

#4


用c++ sort()给字符串排序
引用 3 楼 liao05050075 的回复:
string s[21]; 
for(int i=0;i <20;i++) cin>>s[i]; 
sort(s,s+20);

#5


基本的各种排序算法会吗?

会的话很好办啊
随便选种排序算法
按string的比较来判断大小啊
跟一般的排序没多大区别的

不会的话
还是建议你去看看数据结构与算法分析的书先
把内排序那章的一些排序方法看一遍就应该会了的

#6


#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

int main()
{
const unsigned int size = 4;
string abc[size] = {
"123",
"789",
"456",
"022"
};

sort(abc,abc+size);

for(int i=0;i<size;i++)
cout << abc[i] << endl;
}

#7


引用 3 楼 liao05050075 的回复:
string s[21]; 
for(int i=0;i <20;i++) cin>>s[i]; 
sort(s,s+20);

直接这样就行吗??
不用写cmp函数了么 ~~

#8


string 类提供了operator<

#9


第一次发帖,搞了3年JAVA,感觉能力还可以,现在公司要我搞C++,

以前没C++知识,现在从头来啊郁闷的,这几天看了下C++的STL,貌似

楼主可以这样写:

         int N;
string [N] s;
for (int i=0;i<s.length();i++)
{
cin>>N;
cin>>s[i];
sort(s.begin(),s.end());
}



return 0;


话说做惯了JAVA看C++很别扭啊,string的S还小些,继承用:,
话说我建了个StringBuffer 想调用下append()方法,结果发现没有,
String也是居然没split()方法,另外StringBuffer在C++中是stringbuf,
总之是各种纠结啊,与楼主共勉。

#10


引用 2 楼 hellodan 的回复:
http://www.cplusplus.com/reference/algorithm/sort/

自己看一下,答案在里面了,如果还不会我也无语了。
麻烦你看一下人家的要求好不好
这是c语言版的:
int compare(const void*elem1,const void *elem2)
{return(strcmp((char*)elem1,(char*)elem2));}
qsort(str,size,len,compare);//str为char类型二维数组如str[1000][9], 那么,size是字符串的数目(1000), len是字符串的最长长度(9)