Рекурсия не требуется ... (Если это не требуется специально в домашнем задании (?) ...)
Поскольку это очень похоже на домашнюю работу, я просто дам несколько советов
Используйте целочисленную переменную, скажем, i, чтобы индексировать от 0 до длины более короткой строки.
Пока str1 [i] == str2 [i], а последнее значение индекса не достигнуто, увеличивайте i.
Если вы достигнете последнего возможного значения для индекса, то более короткая строка будет первой (или они будут считаться равными, если длина равна ...)
В противном случае сравните этот первый символ, который отличается, и решите, какая строка является первой соответственно ... Может быть так просто:
return (str1 [i]
Если рекурсия, вы должны ... (и это было легко сказано в других комментариях, такого рода проблема действительно не является логическим / действительным кандидатом для рекурсии ...)
Идея состоит в том, чтобы иметь функцию с таким интерфейсом:
int RecursCompare(string str1, string str2, int i)
и который вызывает себя, передавая те же значения для str1 и str2 и передавая следующее значение для i (i + 1), при условии, что str1 [i] == str2 [i] И ни str1, ни str2 не находятся на его конец.
Когда это условие становится ложным, рекурсия заканчивается, и вместо этого функция возвращает соответствующее значение, чтобы указать, что Str1 находится в алфавитном порядке до или после Str2.