字符串排序算法,该怎么处理

字符串排序算法
我想实现这样的排序功能:

 A
a
B
b
.......
1
2
3
.....
每个字符串长度是16 ;

例如: "Ad" ,"aa","AA","BB","b","A2"...
排序完是这样的  "AA" ,"Ad","A2","aa","BB","b"...  求思路

------解决方案--------------------
其实关键就是单字符之间的大小比较,如果不想写一堆if...else语句的话,这种情况有一个很简单的办法,就是建立一个索引数组,
下标就是ASCII字符,值就是各个字符所对应的大小次序,利用这个数组,任何大小顺序都是实现,比如,对于你说的这种情况,
可以写成:
comp_id['A']  = 0;
comp_id['a']  = 1;
comp_id['B']  = 2;
comp_id['b']  = 3;
......
comp_id['0']  = 53;
......
排序算法中的大小比较就可以写成这样的形式:
if ( comp_id(ch1) < comp_id(ch2) ) {
.....
}