Здравей,
По нищо не се различава от сортирането на числа. Т.к. всички букви си имат ASCII код и операцията ('A' < 'B') е валидна и връща истина(true, 1). Има разлика между малки и големи букви обаче т.к. в ASCII кодовата таблица са подредени първо всички Главни букви и след тях всички малки. прилагам ти снимка на кодовата таблица. Предполагам имаш структура Book, и в нея имаш поле authorF(автор фамилия) и масив от книги Books. Избираш си метод за сортиране в интернет има много с готови функции, а в сортирането ще се водиш по authorF[0] - т.е. първата буква от името на автора. Ако името и фамилията обаче са в един и същи стринг (author) ще трябва с един for цикъл да достигнете до първата буква от фамилията. Т.е. for(int i = 0; author[i]!=" "; i++); Цикълът се върти до намирането на интервал в стринга. След като цикъла е приключил author[i+1] е първата буква от фамилното име на автора. Разгледайте метода на мехурчето за сортиране и насоките които ви дадох и ако имате въпроси ми пишете.