Ввод строки до определенного символа - 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. - Программа завершается успешно.