Написать функцию, которая выводит на экран все слова заданной строки, в которой заданная буква входит N или более раз - C (СИ)
Формулировка задачи:
Написать функцию, которая выводит на экран все слова заданной строки, в которой заданная буква входит N или более раз. В случае отсутствия таких слов выводится соответствующее сообщение. В главной программе ввести с клавиатуры две строки длиной до 80 символов, и с помощью созданной функции вывести на экран все слова первой строки, которые содержат букву "c" более одного раза, и все слова второй строки, содержащие букву "a" три или более раза.
апап
Хелпаните, завтра зачет :C
апап
Решение задачи: «Написать функцию, которая выводит на экран все слова заданной строки, в которой заданная буква входит N или более раз»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
void func(char mass[80],int N,char ch)
{
int i=0,count=0;
char *p, *buf;
p=strtok(mass," ");
while(p)
{
i=0;
buf=p;
while (strchr (buf,ch))
{
i++;
buf=strchr (buf,ch);
buf++;
}
if(i>=N) {printf("%s ",p);count++;}
p=strtok(NULL," ");
}
if(!count) printf ("Takih slov net.\n");
printf("\n\n");
}
int main ()
{
int N;
char strtext[80];
printf("Vvedi 1-stroky:\n>>");
fgets(strtext,80,stdin);
fflush(stdin);
func(strtext,1,'c');
//2 stroka
printf("Vvedi 2-stroky:\n>>");
fgets(strtext,80,stdin);
func(strtext,3,'a');
return 0;
}
Объяснение кода листинга программы
В этом коде функция func() принимает три аргумента:
- mass - строка, в которой нужно найти слова, содержащие заданную букву
- N - количество повторений заданной буквы в слове, после которого слово выводится на экран
- ch - буква, которую нужно найти В функции используется функция strtok() для разделения строки на слова. Каждое слово проверяется на наличие заданной буквы. Если буква встречается в слове N или более раз, слово выводится на экран. В функции main() пользователю предлагается ввести строку, затем функция func() вызывается дважды:
- С одним повторением (N=1) и буквой 'c' - выводит все слова, в которых буква 'c' встречается хотя бы один раз.
- С тремя повторениями (N=3) и буквой 'a' - выводит все слова, в которых буква 'a' встречается три или более раз. При вводе строк и вызове функции func() используется функция fgets(), чтобы исключить символ новой строки, который добавляется при вводе строки с помощью функции printf().