Найти среднее число букв в словах - C (СИ)
Формулировка задачи:
int srednee(char * str)
{
}Решение задачи: «Найти среднее число букв в словах»
//...
#include <string.h>
//...
int tok_count(const char* s, const char* delim)
{
int c = 0;
while(*s)
{
if(!strchr(delim, *s))
{
++c;
do
{
if(*++s == '\0')
{
return c;
}
}
while(!strchr(delim, *s));
}
else ++s;
}
return c;
}
Объяснение кода листинга программы
В представленном коде реализована функция tok_count, которая принимает два аргумента: указатель на строку s и указатель на строку delim.
Функция считает количество слов в строке s, где слово отделяется от другого слова символами из строки delim.
Внутри функции создается счётчик c, который инициализируется нулём. Затем в цикле, пока символы в строке s не закончатся, происходит проверка: если текущий символ не является разделителем (т.е. его нет в строке delim), то счётчик c увеличивается на единицу.
Когда текущий символ является последним символом в строке s (т.е. *s == '\0'), функция возвращает значение счётчика c.
Если текущий символ является разделителем (т.е. strchr(delim, *s) возвращает ненулевой результат), то происходит переход к следующему символу в строке s с помощью ++s.
Таким образом, в результате выполнения функции tok_count будет возвращено количество слов в строке s, где слово отделяется символами из строки delim.