#c #string #input #while-loop #char
Вопрос:
Я работаю над программой, которая принимает заданный пользователем ввод любой длины и проверяет, находится ли первый символ этого ввода (до пробела) в пределах 10-16 — й позиции ввода той же строки, затем, если символ находится в пределах 10-16 — й позиции, он будет повторять ввод (после пробела).
Текущий Код
# include <stdio.h>
int main() {
int in;
in = getchar();
while (in != 'n'){
putchar(in);
in = getchar();
}
return 0;
}
Этот код даст мне ввод любого размера и вернет его обратно.. Где у меня возникают проблемы, это прохождение ввода и проверка того, находится ли первый символ в 10-16 символах ввода. Я пытался использовать указатели безрезультатно, потому что я не знаю, как это сделать без использования строки, я не могу использовать строку только потому, что строка требует, чтобы я ввел длину, которая в данном случае не допускается.
Текущий вход и выход
>f 012r4g67f
f 012r4g67f
>a 012345678a
a 012345678a
Правильный ввод и вывод
>f 012r4g67f
Ничто Не Должно Повторяться, потому что » f » не находится в пределах 10-16
>a 012345678a
012345678a
Все, что после пробела повторяется как a, находится в пределах первых 10-16 символов
Ответ №1:
у вас есть 2 способа просмотреть вводимые пользователем данные :
- вы читаете, просматривая getchar, и используете if для анализа возвращенного символа
- вы сохраняете результаты getchar в массиве, чтобы манипулировать содержимым
Комментарии:
1. Как бы я мог хранить результаты getchar() в массиве? а затем пересечь массив? Я немного новичок в C, поэтому не знаю, является ли этот вопрос элементарным.
2. вам нужно знать, как использовать массивы , а затем, после того как вы настроите правильный размер для своей строки, вы можете сделать что-то вроде этого
array[index] = c
c-это ваш символ, в котором хранится один символ, возвращаемый getchar