/*本程序统计输入的字符串取最长的一组并统计数字、字母、符号等的个数,版本v2019.01.10*/
/*本程序在windows系统,通过c-free 3.5.2程序编译*/
#include <stdio.h>
#define MAXLINE 1000

int get_line(char line[],int maxline);
void copy_line(char to[],char from[]);

int main()
{
    int len;
    int max;
    char line[MAXLINE];
    char longeat[MAXLINE];
    
    max=0;
    while((len=get_line(line,MAXLINE))>0)
          if(len>max){
            max=len;
            copy_line(longeat,line);
          }
    if(max>0)
      printf("%s",longeat);

   
   
    int c,i,nwhite,nother;
    int ndigit[10];
    nwhite=nother=0;
    c==longeat[MAXLINE];
      while((c=getchar())!=EOF)
   if(c>'0'&&c<='9')
     ++ndigit[c-'0'];
   else if(c==' '||c=='\n'||c=='\t')
     ++nwhite;
   else
     ++nother;

   printf("数字出现的次数分别是:");
   for(i=0;i<10;++i)
   printf(" %d",ndigit[i]);
  printf(",空白符是%d个,其他字符是%d个\n",nwhite,nother);




    return 0;
}

int get_line(char s[],int lim)
{
   int c,i;
   
   for(i=0;i<lim-i && (c=getchar())!=EOF && c!='\n';++i)
       s[i]=c;
   if(c=='\n'){
     s[i]=c;
     ++i;
   }
   s[i]='\0';
   return i;
}

void copy_line(char to[],char from[])
{
    int i;
    
    i=0;
    while((to[i]=from[i])!='\0')
    ++i;
}