Поскольку ваши строки являются строками, scanf () не является хорошим выбором, кроме как для получения целочисленного значения, и для очистки буфера от всего после этого (может быть всякого рода мусор, никогда не доверяйте пользователю), выполните fgets в str2. Ваши новые строки тоже будут сравниваться, если они идентичны. Вы также должны проверить, что возврат от scanf равен 1, говоря, что у вас есть число! Что, если пользователь наберет «x» в качестве числа? Если хотите спросить еще раз, вам нужно очистить буфер от мусора. Помните, что, поскольку у вас есть «приготовленный» ввод, ничего не отправляется, пока пользователь не нажмет Enter, поэтому вам всегда нужно иметь дело с символом новой строки. Если все, что вы делаете, это scanf в числах, scanf пройдет через новую строку как пробел, ища di git, но вы вводите смешанные строки и числа.
Вам нужно сравнить null с mis -сравнить, если одна строка является префиксом другой, поэтому в 'for' test 'i
Поскольку конечные пробелы являются частью вашей строки, вы можете напечатать их в одинарных кавычках (после удаления новой строки).