Как сделать ввод строки с клавиатуры? - C (СИ) (75590)
Формулировка задачи:
люди как сделать вввод строки с клавиатуры?
//Дана строка. Указать те слова, которые содержат хотя бы одну букву k.
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char str[]="kazdiy 4elovek nebil bi... ";
int i,j;
int beg=0; // начало слова
int cout=0; // счетчик буквы k
i=0;
while (str[i]!='\0') // пока не достигнут конец строки
{
if(isalpha(str[i])) // является ли символ буквой
{
if(str[i]=='k')
cout++;
i++;
}
else
{
if(cout>0)
{
for(j=beg;j<i;j++)
printf("%c",str[j]);
printf("\n");
cout=0;
}
i++;
beg=i;
}
}
getch();
return 0;
}Решение задачи: «Как сделать ввод строки с клавиатуры?»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int main(void)
{
int j,i=0,beg=0,cout=0;
char str[50];
gets(str);
while (str[i]!='\0') // пока не достигнут конец строки
{
if(isalpha(str[i])) // является ли символ буквой
{
if(str[i]=='k')
cout++;
i++;
}
else
{
if(cout>0)
{
for(j=beg;j<i;j++)
printf("%c",str[j]);
printf("\n");
cout=0;
}
i++;
beg=i;
}
}
_getch();
return 0;
}
Объяснение кода листинга программы
- Установка значения _CRT_SECURE_NO_WARNINGS для предотвращения предупреждений о возможных атаках на программу.
- Включение необходимых заголовочных файлов: stdio.h для работы с функциями ввода-вывода, ctype.h для работы с функцией isalpha и conio.h для работы с функцией _getch.
- Определение переменной main типа void и отсутствие аргументов.
- Объявление переменных:
- j, i, beg, cout - целочисленные переменные для управления циклом и подсчета символов.
- str - массив символов для хранения введенной строки.
- Использование функции gets для ввода строки с клавиатуры в массив str.
- Создание цикла while для обработки каждого символа введенной строки до достижения конца строки.
- Проверка, является ли текущий символ буквой с помощью функции isalpha.
- Если текущий символ равен 'k', увеличение счетчика cout.
- Увеличение индекса i для перехода к следующему символу.
- Если текущий символ не является буквой, выполнение следующих действий:
- Если счетчик cout больше 0, вывод на экран символов от beg до i-1 с помощью цикла for и функции printf.
- Обнуление счетчика cout.
- Увеличение индекса i для перехода к следующему символу.
- Обнуление значения beg для начала вывода символов с нового символа.
- Завершение цикла while и вызов функции _getch для приостановки выполнения программы и возврата в командную строку.
- Возврат 0 для успешного завершения программы.