Определить слова, которые содержат хотя бы одну букву d - C (СИ)

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

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

Вот условие задачи: Задана не пустая последовательность не пустых слов из латинских букв; соседние слова отделяются одно от другого запятыми, а по последнему слову является точка. Определить слова, которые содержат хотя бы одну букву d. Пока понял как сделать цикл:
int c=0,counter=0;
while((a=getchar())!='.')
{
      if(a=='d' && c==0)
{
           counter++;
           c=1;
}
      else if(a==',')
           c=0;
}
Но не знаю как ввести строку. Сделайте, пожалуйста, до конца эту программу. Буду очень благодарен.

Решение задачи: «Определить слова, которые содержат хотя бы одну букву d»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main () {
 char s[80],word[80];
 int i,d,len;
 puts ("Input the string");
 gets (s);
 char *p = strtok (s,",");
 while (p) {
  strcpy (word, p);
  len = strlen (word);
  d=0;
  for (i=0; i<len; i++) if (word[i]=='d') {
   puts (word); break;
  }
  p = strtok (NULL,",");
 }
 getchar ();
 return 0;
}

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

В этом коде используется функция strtok для разделения входной строки на слова. Каждое слово сохраняется в массиве word, а его длина сохраняется в переменной len. Затем для каждого слова выполняется проверка на наличие буквы 'd' с помощью цикла for и индекса i. Если буква 'd' найдена, то слово выводится на экран и цикл прерывается с помощью оператора break. Функция getchar в конце программы используется для обработки символа новой строки, который обычно остается во входном потоке после выполнения операции gets.

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


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

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

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