Функции: ввести ряд строк и вывести те из них, которые начинаются с буквы "b" - C (СИ)
Формулировка задачи:
написать программу, которая вводит ряд строк и выводит те из них, которые начинаются с буквы «b».
Решение задачи: «Функции: ввести ряд строк и вывести те из них, которые начинаются с буквы "b"»
textual
Листинг программы
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#define SIZE 256
void clear_stream()
{
while (getchar() != '\n');
}
void enter_string()
{
int count = 0;
char *string;
char c;
string = (char *)malloc(SIZE);
printf("Enter a string (the string must be less %d characters): ", SIZE);
clear_stream();
while ((c = getchar()) != '\n') {
if (count < SIZE - 1) {
string[count] = c;
count++;
}
}
string[count] = '\0';
if (string[0] == 'b' || string[0] == 'B')
puts(string);
}
int main()
{
char key;
bool quit = false;
while (!quit) {
printf(" Menu\n");
printf("1. Enter a string.\n");
printf("2. Quit.\n");
scanf("%c", &key);
switch (key) {
case '1': {
enter_string();
break;
} case '2': {
quit = true;
break;
} default: {
printf("You entered a wrong character, try again.\n");
}
}
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью и строками.
- Определяем константу размера строки, которую будем вводить.
- Создаем функцию, которая будет очищать поток ввода от лишних символов.
- Создаем функцию, которая будет запрашивать ввод строки и выводить на экран только те строки, которые начинаются с буквы
b. - В функции main() создаем переменную, которая будет контролировать выход из программы.
- В цикле while, пока пользователь не введет символ
2, выводим меню и запрашиваем ввод. - В зависимости от введенного символа выполняем соответствующие действия: ввод строки или выход из программы.
- Если был введен символ
1, то вызываем функцию enter_string(), которая запрашивает ввод строки и выводит на экран только те строки, которые начинаются с буквыb. - Если был введен символ
2, то выходим из программы. - Если был введен некорректный символ, то выводим сообщение об ошибке и просим ввести символ заново.