各種OI測評系統中經常出現對字符串進行排序的題,以前我不太會字符串快排,結果都是用字典樹的遍歷進行的,現在終於會用qsort函數了,再次分享:

 

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int cmp(const void *a, const void *b) {
	return strcmp((*(string*)a).data(),(*(string*)b).data());
}
string s[103];
int n;
int main() 
{
	freopen("letter.in", "r", stdin);
	freopen("letter.out", "w", stdout);
	cin >> n;
	for(int i=0; i<=n; i++)
		getline(cin, s[i]);
	qsort(s+1, n+1, sizeof(string), cmp);
	for(int i=2; i<=n+1; i++)
		printf("%s\n", s[i].c_str());
	return 0;
}