/*本程序统计输入的字符串取最长的一组并统计数字、字母、符号等的个数,版本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;
}