//Программа для подсчета слов.V1.b
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#define IN 1
#define OUT 0
#define LINE_MAX 4096
int flonw (char s1[],char w[],int *max); //Нахождение длиннейшего слова в строке s1.
int gline (char str[],int lim); //Ввод строки
void copy (char s1[],char s2[]); //Копирование строк
int main(void)
{
char strin[LINE_MAX],lword[LINE_MAX],out[LINE_MAX];
int k,nword = 0,len = 0,max = 0;
do
{
if ((k=gline(strin,LINE_MAX)) == -2)
nword+=flonw(strin,lword,&len);
if (len>max){
max=len;
copy(lword,out);
}
len=0;
}
while (k!=-1);
printf ("\nКонец ввода\nКоличество слов:%d\nСамое длинное слово:%d Символов\n<%s>\n",nword
,max
,out
); }
int gline (char str[],int lim){ //Ввод строки
int c,i;
for (i
=0;i
<lim
&& (c
=getchar())!=EOF
&& c
!='\n';++i
){ str[i]=c;
}
if(i<lim){ //Проверка на переполенеие
if (c=='\n')
str[i]='\0'; //Добавление символа окончания строки
if (c==EOF){
str[i]='\0'; //Добавление символа окончания строки
return -1; //Код конца ввода
}
return i;
}
return -2; //Код переполнения
}
int flonw (char s1[],char w[],int *maxl){ //Нахождение длиннейшего слова в строке s1.
int c,i=0,j=0,n=0,l=0,ind=OUT;
char t[LINE_MAX];
do
{
c = s1[i++];
if (c==' ' || c=='\t' || c=='\n' || c== ',' || c=='.' || c=='!' || c=='?' || c==';' || c == '\0'){
ind=OUT;
if (l>*maxl){
*maxl=l;
t[j]='\0';
copy(t,w);
}
l=0;j=0;
}
{
t[j++]=c; //Запись слова
if(ind==OUT){
ind=IN;
++n; //Счетчик кол-ва слов
}
++l; //Счетчик длины слов
}
}
while (c != '\0');
return n;
}
void copy (char s1[],char s2[]){ //Копирование строк
int i;
for (i=0;s1[i]!='\0';++i)
s2[i]=s1[i];
s2[i]='\0';
}
Ly/Qn9GA0L7Qs9GA0LDQvNC80LAg0LTQu9GPINC/0L7QtNGB0YfQtdGC0LAg0YHQu9C+0LIuVjEuYgoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2RlZmluZSBJTiAxCiNkZWZpbmUgT1VUIDAKI2RlZmluZSBMSU5FX01BWCA0MDk2CmludCBmbG9udyAoY2hhciBzMVtdLGNoYXIgd1tdLGludCAqbWF4KTsgLy/QndCw0YXQvtC20LTQtdC90LjQtSDQtNC70LjQvdC90LXQudGI0LXQs9C+INGB0LvQvtCy0LAg0LIg0YHRgtGA0L7QutC1IHMxLgoKaW50IGdsaW5lIChjaGFyIHN0cltdLGludCBsaW0pOwkJCS8v0JLQstC+0LQg0YHRgtGA0L7QutC4Cgp2b2lkIGNvcHkgKGNoYXIgczFbXSxjaGFyIHMyW10pOyAJCS8v0JrQvtC/0LjRgNC+0LLQsNC90LjQtSDRgdGC0YDQvtC6CgppbnQgbWFpbih2b2lkKQp7CgljaGFyIHN0cmluW0xJTkVfTUFYXSxsd29yZFtMSU5FX01BWF0sb3V0W0xJTkVfTUFYXTsKCWludCBrLG53b3JkID0gMCxsZW4gPSAwLG1heCA9IDA7CglkbwoJewoJCWlmICgoaz1nbGluZShzdHJpbixMSU5FX01BWCkpID09IC0yKQoJCXtwcmludGYoItCe0KjQmNCR0JrQkCEhIVxuIik7ZXhpdCgwKTt9CgkJbndvcmQrPWZsb253KHN0cmluLGx3b3JkLCZsZW4pOwoJCWlmIChsZW4+bWF4KXsKCQkJbWF4PWxlbjsKCQkJY29weShsd29yZCxvdXQpOwoJCX0KCQlsZW49MDsKCX0KCXdoaWxlIChrIT0tMSk7CglwcmludGYgKCJcbtCa0L7QvdC10YYg0LLQstC+0LTQsFxu0JrQvtC70LjRh9C10YHRgtCy0L4g0YHQu9C+0LI6JWRcbtCh0LDQvNC+0LUg0LTQu9C40L3QvdC+0LUg0YHQu9C+0LLQvjolZCDQodC40LzQstC+0LvQvtCyXG48JXM+XG4iLG53b3JkLG1heCxvdXQpOwp9CgppbnQgZ2xpbmUgKGNoYXIgc3RyW10saW50IGxpbSl7CQkJCS8v0JLQstC+0LQg0YHRgtGA0L7QutC4CglpbnQgYyxpOwoJZm9yIChpPTA7aTxsaW0gJiYgKGM9Z2V0Y2hhcigpKSE9RU9GICYmIGMhPSdcbic7KytpKXsKCQlzdHJbaV09YzsKCX0KCWlmKGk8bGltKXsJCQkJCQkvL9Cf0YDQvtCy0LXRgNC60LAg0L3QsCDQv9C10YDQtdC/0L7Qu9C10L3QtdC40LUKCQlpZiAoYz09J1xuJykKCQkJIHN0cltpXT0nXDAnOwkJCS8v0JTQvtCx0LDQstC70LXQvdC40LUg0YHQuNC80LLQvtC70LAg0L7QutC+0L3Rh9Cw0L3QuNGPINGB0YLRgNC+0LrQuAoJCWlmIChjPT1FT0YpewoJCQlzdHJbaV09J1wwJzsJCQkvL9CU0L7QsdCw0LLQu9C10L3QuNC1INGB0LjQvNCy0L7Qu9CwINC+0LrQvtC90YfQsNC90LjRjyDRgdGC0YDQvtC60LgKCQkJcmV0dXJuIC0xOwkJCQkvL9Ca0L7QtCDQutC+0L3RhtCwINCy0LLQvtC00LAKCQl9CgkJcmV0dXJuIGk7Cgl9CglyZXR1cm4gLTI7CQkJCQkJLy/QmtC+0LQg0L/QtdGA0LXQv9C+0LvQvdC10L3QuNGPCn0KCmludCBmbG9udyAoY2hhciBzMVtdLGNoYXIgd1tdLGludCAqbWF4bCl7IAkvL9Cd0LDRhdC+0LbQtNC10L3QuNC1INC00LvQuNC90L3QtdC50YjQtdCz0L4g0YHQu9C+0LLQsCDQsiDRgdGC0YDQvtC60LUgczEuCglpbnQgYyxpPTAsaj0wLG49MCxsPTAsaW5kPU9VVDsKCWNoYXIgdFtMSU5FX01BWF07CglkbwoJewoJCWMgPSBzMVtpKytdOwoJCWlmIChjPT0nICcgfHwgYz09J1x0JyB8fCBjPT0nXG4nIHx8IGM9PSAnLCcgfHwgYz09Jy4nIHx8IGM9PSchJyB8fCBjPT0nPycgfHwgYz09JzsnIHx8IGMgPT0gJ1wwJyl7CgkJCWluZD1PVVQ7CgkJCWlmIChsPiptYXhsKXsKCQkJCSptYXhsPWw7CgkJCQl0W2pdPSdcMCc7CgkJCQljb3B5KHQsdyk7CgkJCX0KCQkJbD0wO2o9MDsKCQl9CgkJZWxzZSBpZihpc2RpZ2l0KGMpKQoJCXsKCQkJdFtqKytdPWM7CQkJLy/Ql9Cw0L/QuNGB0Ywg0YHQu9C+0LLQsAoJCQlpZihpbmQ9PU9VVCl7CgkJCQlpbmQ9SU47CgkJCQkrK247CQkvL9Ch0YfQtdGC0YfQuNC6INC60L7Quy3QstCwINGB0LvQvtCyCgkJCX0KCQkJKytsOwkJCS8v0KHRh9C10YLRh9C40Log0LTQu9C40L3RiyDRgdC70L7QsgoJCX0KCX0KCXdoaWxlIChjICE9ICdcMCcpOwoJcmV0dXJuIG47Cn0KCnZvaWQgY29weSAoY2hhciBzMVtdLGNoYXIgczJbXSl7IAkJCS8v0JrQvtC/0LjRgNC+0LLQsNC90LjQtSDRgdGC0YDQvtC6CglpbnQgaTsKCWZvciAoaT0wO3MxW2ldIT0nXDAnOysraSkKCQlzMltpXT1zMVtpXTsKCXMyW2ldPSdcMCc7Cn0K