Table of strings sorting problem

Aarti aarti at interia.pl
Fri Mar 10 17:20:35 PST 2006


Hello all D-Fans!

I encountered a problem with string sorting according to Polish language 
rules. Here is a simple test program:

// ----------------------------------
import std.stdio;
void main() {
	char[][] table;
	table.length=15;
	
	table[0]="ą";
	table[1]="a";
	table[2]="ć";
	table[3]="c";
	table[4]="ę";
	table[5]="e";
	table[6]="ń";
	table[7]="n";
	table[6]="ł";
	table[7]="l";
	table[8]="ó";
	table[9]="o";
	table[10]="ś";
	table[11]="s";
	table[12]="ź";
	table[13]="ż";
	table[14]="z";

	table.sort;

	foreach(char[] s; table) {
		writef(s);
	}
	writefln();
}
// ----------------------------------

Output of this test is:
aceloszóąćęłśźż

when it should be:
aącćeęlłoósśzźż

It looks like sort doesn't sort properly according to language rules.

Is it a known issue? How to sort strings in D according to language rules?

PS. Possibility of using Polish characters in class identifiers is for 
me really cool. In C++ books in examples you can see all the time 
Trojkat instead of Trójkąt (triangle) and it looks awful.

Regards
Marcin Kuszczak



More information about the Digitalmars-d mailing list