Определить слова, которые содержат хотя бы одну букву 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.