从一个人写的博客中看到了一些学习c语言的心得,我知道成功的人有每个人的路,失败的人都是因为那几个问题失败的。我没有想完全照搬别人的经验,不过觉得别人说的有道理,可以借鉴。
下面是我自己练习的小程序。
//对于输入不超过10行,每行不超过1000个单词的内容,打印出每行超过10个字符的行
#include<stdio.h>
#define MAXLINE 1000
#define MAXPUTS 10
//宏定义,为了使防止后面出现幻数,不易于理解
int getlline(char s[],int lim);
int main()
{
char buff[MAXLINE];
int k,j,n;
char copy[MAXPUTS][MAXLINE];
int len;
k=0;
n=0;
len=1;
while((k<=MAXPUTS) && (len>0))
{
j=0;
if((len=getlline(buff,MAXLINE))>=10)
{
while((copy[n][j]=buff[j])!='\0')//复制长度大于10的数组
++j;
++n;
}
++k;
}
int m;
puts("this would be the line over 10 words");
for(m=0;m<=n;m++)//打印出长度大于10的数组
printf("%s",copy[m]);
}
int getlline(char s[],int lim)//函数接受输入的字符,遇到文件结束符或者是换行符的时候,把字符串保存在一个数组中,并且返回数组长度
{
int i,c;
for(i=0;i<lim-1 && (c=getchar())!=EOF && c !='\n';++i)
s[i]=c;
if(c=='\n')
{
s[i]=c;
++i;
}
s[i]='\0';
printf("the number is %d\n",i);
return i;
}