Из заданной строки символов удалить слова, длина которых меньше указанной пользователем - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Из заданной строки символов удалить слова, длина которых меньше указанной пользователем
 int n, i=1, j=0, k=0;
    char str [80];
   puts("Input string:");
  gets(str);
  puts(str);   
  puts("");
  cout<<"dlina="; cin>>n; 
  k=strlen (str);
  printf("\nLength of string %d \n",k);
  while (i<k) 
  { if (str[i]!= ' ' ) {i++; j++;}
   else {
      if  (j<n) {   
         for(int b=i-j; b<k-j; b++)
            str[b]=str[b+1]; 
         str[k-j+1]='\0';
         k=strlen(str);
         
         j=0;
      } 
      else {i++; j=0;}
   }
  }
  puts(str);
  puts("");
  system("pause");
  return 0;
}
Помогите написать цикл

Решение задачи: «Из заданной строки символов удалить слова, длина которых меньше указанной пользователем»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main()
{
int n, i;
    char str [80];
    char rez[80]={'\0'};
    char *tmp;
   puts("Input string:");
  gets(str);
  puts(str);
  puts("");
  puts("dlina=");
  scanf("%d",&n);
  printf("\nLength of string %d \n",strlen (str));
 
 tmp = strtok(str, " ");
 for (i = 0; tmp != '\0'; i++)
 {
    if(strlen(tmp)>n)
    {
        strcat(rez, tmp);
        strcat(rez," ");
    }
 tmp = strtok(NULL, " ");
 }
 
  puts(rez);
  puts("");
 
  return 0;
}

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Ввод строки с помощью функции gets().
  2. Вывод введённой строки с помощью функции puts().
  3. Ввод длины слова, которое необходимо удалить с помощью функции scanf().
  4. Вывод длины введённой строки с помощью функции printf().
  5. Выделение первого слова в строке с помощью функции strtok().
  6. Итерация по всем словам в строке с помощью цикла for и функции strtok().
  7. Проверка длины текущего слова с помощью условия if.
  8. Если длина слова больше или равна указанной пользователем длине, то добавление этого слова в результирующую строку с помощью функции strcat().
  9. Добавление пробела после каждого слова в результирующую строку.
  10. Вывод результирующей строки с помощью функции puts().
  11. Возврат 0, чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы