请求经验丰富的高手帮我看看代码的 意思
从键盘输入字符,计算所输入的字符的个数与输入的行数并将计算结果输出到屏幕,以感叹号“!”作为输入的结束符#include<stdio.h>
#include<string.h>
#define END '!'
#define MAX 1200
void wordinput(char str[]);
void countwords(char str[]);
void wordoutput(int lines,int number);
int lines=0,number=0;
main()
{
char strings[MAX+1];
wordinput(strings);
countwords(strings);
wordoutput(lines,number);
}
/*将输入的字符保存到数组中*/
void wordinput(char str[])
{
char c;
int i=0;
c=getchar();
while(i<MAX-1&&c!=END)
{
str[i]=c;
c=getchar();
i++;
}
if(str[i-1]=='\n')/*对数组的最后一个元素的值进行处理*/ 这一部分请求能够给我一个详细解析一下???
str[i]='\0';
else
{
str[i]='\n';
str[i+1]='\0';
}
}
/*统计字符的个数及行数*/
void countwords(char str[])
{
int i=0;
char c;
c=str[i];
while(c!='\0')
{
if(c=='\n')
lines++;
else
number++;
i++;
c=str[i];
}
}
/*将统计结果输出*/
void wordoutput(int lines,int number)
{
printf("the lines of string =%d\n",lines);
printf("the words of string =%d\n",number);
}