strcspn
проверяет, начинается ли первая строка любым набором символов из второй строки.Когда вы набираете 10d
, он возвращает 0, потому что первая строка "1c"
начинается с '1'
, то есть символа, который вы читаете с scanf
.Возможно, вам следует использовать strcmp
или strncmp
вместо strspn
.
В вашем коде есть еще несколько проблем:
char *input[10];
- это массив из 10 указателей (char*
).Вы, вероятно, имеете в виду массив символов (строку), например char input[10];
.
Формат %c
сканирует только один символ, а не всю введенную строку.Может быть, fgets
с последующим удалением символов '\n'
и \r'
достаточно для чтения вашего ввода.
Цикл for может выходить за пределы конца массива.x < 53
должно быть x < 4
.
При включенных предупреждениях компилятор, вероятно, предупредит вас о некоторых проблемах в вашем коде.Общие рекомендации: Включите предупреждения компилятора и исправьте их.Прочитайте документацию по функциям, которые вы используете.