Ввод строки до определенного символа - C (СИ)
Формулировка задачи:
Здравствуйте. Суть задачи: вводится текст, ввод должен осуществляться до определенного символа (например до буквы "а"). При вводе этого символа ("а") программа сохраняет весь текст, введенный до него, в строку (массив char), и ввод прекращается. Подскажите, пожалуйста, как можно реализовать это? Мне в голову приходит только посимвольный ввод с проверкой каждого символа, но тогда после каждой буквы придется нажимать Enter, что очень не удобно. Заранее спасибо.
Решение задачи: «Ввод строки до определенного символа»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #define SIZE 1000
- int main ( void )
- {
- char sequenceArray[SIZE] = "";
- signed char currentLetter = 0;
- unsigned char counter;
- puts( "Enter your sequence:" );
- fflush( stdout );
- for ( counter = 0; ( currentLetter = getchar()) != 'a' && currentLetter != 'A' // перенос
- && counter < SIZE; ++counter ) {
- sequenceArray[counter] = currentLetter;
- }
- puts("");
- puts( "Your sequence is: ");
- for ( counter = 0; sequenceArray [counter] != 0; ++counter ) {
- printf( "%c", sequenceArray[counter] );
- }
- puts("");
- return ( EXIT_SUCCESS );
- }
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные: sequenceArray, currentLetter и counter.
- Переменная sequenceArray инициализируется пустой строкой.
- В цикле for, который продолжается до тех пор, пока пользователь не введет символ 'a' или 'A', текущий символ добавляется в массив sequenceArray.
- После окончания цикла выводится пустая строка.
- Затем выводится сообщение
Your sequence is:
и в цикле for выводятся все символы, добавленные в массив sequenceArray. - Программа завершается успешно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д