Если вам нужно сравнить два указателя символов , вы можете сравнить их обычным способом: с помощью операторов сравнения <
, >
, ==
и т. Д.
Проблема в этом случае в том, что вам не нужно сравнивать два указателя на символы. Однако вам нужно сравнить две строки в стиле C , на которые указывают эти указатели символов. Чтобы сравнить строки в стиле C, вы должны использовать стандартную функцию strcmp
.
Вдобавок к этому подход к обработке нулевых элементов в вашем алгоритме сортировки, похоже, не имеет никакого смысла. Представьте себе входной массив, который содержит чередующиеся нулевые и ненулевые указатели. Очевидно, что ваш алгоритм сортировки никогда ничего не сортирует, так как условие в вашем if
никогда не будет истинным. Вы должны пересмотреть свою обработку нулевых элементов. Конечно, в первую очередь, вы должны решить, что с ними делать. Игнорировать и оставить на месте? Нажмите на один конец массива? Что-нибудь еще?