Удалить слова определённой длины, если ввод осуществляется при помощи команды getchar - C (СИ)
Формулировка задачи:
Подскажите как удалить слова определённой длины, если ввод осуществляется при помощи команды getchar или приведите пример простейшей программы.
Решение задачи: «Удалить слова определённой длины, если ввод осуществляется при помощи команды getchar»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#define N 256
#define D " "
int main(void)
{
setlocale(LC_ALL,"RU");
char n[N];
char *str;
int i=0,ch;
printf("Введите предложение: ");
while ((n[i]=getchar())!='\n'&&i<N-1)i++;
n[i] = '\0';
printf("\nВы ввели предложение : "%s" ",n);
printf("\nВведите количество букв в словах, которые нужно удалить: ");
scanf("%d",&ch);
for(str=strtok(n,D);str!=NULL;str=strtok(NULL,D))
if(strlen(str)!=ch)printf("%s ",str);
return(0);
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с языком C
- Определение констант и переменных
- N (256) - размер массива символов
- D (
) - разделитель, пробел - i (0) - счетчик для цикла
- n (массив символов) - ввод предложения
- str (указатель на строку) - переменная для работы со строками
- Ввод предложения с помощью функции getchar
- Вывод введенного предложения с помощью функции printf
- Ввод количества букв в словах, которые нужно удалить с помощью функции scanf
- Использование функции strtok для разделения строки на слова
- Токены создаются с помощью разделителя пробела
- Проверка длины каждого слова с помощью функции strlen
- Если длина слова не равна введенному количеству букв, слово выводится на экран
- Возврат 0 для завершения программы